Closed Bug 1254925 Opened 8 years ago Closed 8 years ago

Graphite 2 vm::Machine::Code::estimateCodeDataOut underestimation leads to buffer overflow

Categories

(Core :: Graphics: Text, defect)

defect
Not set
critical

Tracking

()

RESOLVED FIXED
Tracking Status
firefox45 --- disabled
firefox46 --- fixed
firefox47 + fixed
firefox48 + fixed
firefox-esr38 46+ disabled
firefox-esr45 46+ disabled

People

(Reporter: hofusec, Unassigned)

References

Details

(4 keywords)

Attachments

(2 files)

Attached file poc.zip
In pass.cpp the estimateCodeDataOut method is used to calculate the value of prog_pool_sz which is to small if the source data contains multiple very small code regions. 
poc tested with https://ftp.mozilla.org/pub/firefox/tinderbox-builds/mozilla-central-linux64-asan/1457494932/firefox-48.0a1.en-US.linux-x86_64-asan.tar.bz2
Attached file asanlog.txt
Verified this is reproducible on both Firefox nightly and the latest revision of graphite.
Group: core-security → gfx-core-security
Severity: normal → critical
Status: UNCONFIRMED → NEW
Ever confirmed: true
Depends on: 1255158
Frustration. I can't replicate the failure. I have done a thorough visual review and I am hopeful that this may be fixed in e2a7bd658a6ea0614a6011db3507989c52d451e8. Please test for me. TIA.
Verified with graphite revision e2a7bd658a6ea0614a6011db3507989c52d451e8
Jonathan, I think graphite is still preffed off by default in 46. Do we plan to change that back for 46? There's still this sec-critical bug and a few more that affect beta. We are heading into beta 9 so too late to uplift more graphite fixes.
Flags: needinfo?(jfkthame)
Yes, it's off-by-default for Release and Beta. I wasn't aiming to change this for 46 (and maybe not 47 either? -- let's see how the next few weeks go), so as to give us some breathing room to ensure things are stabilized and all relevant fixes safely landed.
Flags: needinfo?(jfkthame)
(In reply to Tyson Smith [:tsmith] from comment #4)
> Verified with graphite revision e2a7bd658a6ea0614a6011db3507989c52d451e8

Verified fixed to be clear.
Thanks, marking this wontfix for 46 then.
Depends on: 1262846
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Group: gfx-core-security → core-security-release
Graphite2 has been updated to 1.3.8 on all the relevant branches including ESRs
Flags: sec-bounty?
See Also: → 1255055
Flags: sec-bounty? → sec-bounty+
Group: core-security-release
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: