Lacking (some) information is unfortunately a reality in all projects and often we need to get going without having that information. Here is what I do in these cases.
I communicate efforts and dates always based on the information available. I clearly list the items that are unknown at the time and how they can influence the ball park figure I have provided. I also make clear that how we are working on getting the remaining information and by when we expect to have it. Further I explain how the additional information may influence the outcome. You don't know what you don't know.
Then as I executed the project I try to work in very short cycles (or increments or whatever you want to call them). As my team works through the different items we address the high-risk areas first, e.g. the areas that we don't have enough information about. For example by providing early (pre-release) versions of a solution you may be able to assess the quality level before implementation is complete. Another option is the use of spikes for questions nobody on the team has an answer yet. A rough answer from a spike is always better than not having a clue at all.
In my experience working in short iterations has been an extremely effective technique to address the uncertainty. By short I mean one or 2 weeks, sometimes even shorter. As we refine the estimates based on newer information we reduce or even eliminate the uncertainty. Each time we have a better estimate we communicate this clearly to stake holders, which I think is very important, too.
Make sure your stake holders always know what is going on. You cannot over communicate. In almost all cases I have found that stakeholders are then very reasonable or even fun to work with. They have their experiences, too, and they understand that you don't necessarily have all the information at the beginning of a project. They just want to see a structure approach from you how you address that challenge.