Closed Bug 505626 Opened 17 years ago Closed 3 years ago

Check that transform_fn is valid before executing it

Categories

(Core :: Graphics: Color Management, defect)

x86
macOS
defect

Tracking

()

RESOLVED INVALID

People

(Reporter: jrmuizel, Unassigned)

Details

(Keywords: good-first-bug, sec-want, Whiteboard: [sg:want][third-party-lib-audit])

qcms uses a single indirect function call. I would guess that this could be a likely exploit vector so it would be nice if we could check that the address pointed to by transform_fn is something expected instead of an exploit. Unfortunately, I don't really have any good ideas about how to implement this.
Do you know at compile-time what the possible functions are? Got an MXR link so interested people can see what callspot you mean?
(In reply to comment #1) > Do you know at compile-time what the possible functions are? Got an MXR link so > interested people can see what callspot you mean? Yes, the possible functions are known at compile time. They are currently the following: qcms_transform_data_gray_out_precache; qcms_transform_data_graya_out_precache; qcms_transform_data_gray_out_lut; qcms_transform_data_graya_out_lut; qcms_transform_data_rgb_out_lut_sse; qcms_transform_data_rgba_out_lut_sse; qcms_transform_data_rgb_out_lut_precache; qcms_transform_data_rgba_out_lut_precache; qcms_transform_data_rgb_out_lut; qcms_transform_data_rgba_out_lut; The callspot is here: http://mxr.mozilla.org/mozilla-central/source/gfx/qcms/transform.c#1644
You could make qcms_transform.transform_fn an enum instead of a function pointer and then switch on it... this also has the advantage of being very branch-predictable by processors, where calls through functions pointers aren't.
Whiteboard: [sg:want]
This doesn't seem to describe a serious vulnerability and a solution was proposed > 3 years ago. Is this still an issue, and if so, does it need to remain hidden?
No need for this to remain private (I checked with Jeff), doesn't describe an actual vulnerability. We should do this though, if it still makes sense.
Group: core-security
Assignee: jmuizelaar → nobody
Whiteboard: [sg:want] → [sg:want][third-party-lib-audit]
Keywords: good-first-bug
Severity: normal → S3

Should this bug be closed since this code/file doesn't exist anymore (converted to rust etc.). I was looking for a "good first bug" and came across this.

Agreed.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.