Inline view is what you do to avoid this error.

SELECT
pw.poam_id,
pw.weakness_id,
pw.weakness_desc,
pw.poc,
pw.total_resources_required,
pw.scheduled_completion_date,
m.milestone_desc,
m.scheduled_completion_date,
mcl.change_log,
rwst.weakness_source_type_desc,
rwms.weakness_milestone_status_desc,
pw.omit_from_omb
FROM
(select p.poam_id, w.weakness_id, w.weakness_desc, w.poc,
w.total_resources_required, w.scheduled_completion_date
w.omit_from_omb
from poam p, weakness w
where p.poam_id = w.poam_id(+)) pw
milestone m,
milestone_change_log mcl,
weakness_source ws,
ref_weakness_source_type rwst,
ref_weakness_milestone_status rwms
WHERE
pw.weakness_id(+) = m.weakness_id AND
pw.weakness_id(+) = ws.weakness_id AND
pw.weakness_status_code(+) = rwms.weakness_milestone_status_code AND
ws.weakness_source_type_code = rwst.weakness_source_type_code AND
m.milestone_id = mcl.milestone_id