New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ZDI-CAN-367: Apple CUPS 1.3.7 (HP-GL/2 filter) Remote Code Execution Vulnerability #2911
Comments
CUPS.org User: mike Patch attached with fix... |
CUPS.org User: mike Fixed in Subversion repository. |
"str2911.patch": Index: filter/hpgl-attr.c--- filter/hpgl-attr.c (revision 914) if (num_params == 0)
if (num_params == 0)
if (num_params == 1) if (num_params == 2)
Pens[pen].width = w; if (PageDirty && pen == PenNumber)
if (PageDirty)
if (PageDirty) Index: filter/hpgltops.h--- filter/hpgltops.h (revision 914) define M_PI 3.14159265358979323846#endif /* M_PI */ /*
@@ -108,10 +116,10 @@
|
michaelrsweet commentedAug 19, 2008
Version: 1.3-current
CUPS.org User: mike
-- ABSTRACT ------------------------------------------------------------
TippingPoint has identified a vulnerability affecting the following
products:
-- VULNERABILITY DETAILS -----------------------------------------------
This vulnerability allows remote attackers to execute arbitrary code on
vulnerable installations of Apple CUPS. Authentication is not required
to exploit this vulnerability.
The specific flaw exists in the Hewlett-Packard Graphics Language
filter. Inadequate bounds checking on the pen width and pen color
opcodes result in an arbitrary memory overwrite allowing for the
execution of arbitrary code as the "hgltops" process uid.
From filter/hpgltops.h:
From filter/hpgl-attr.c:PW_pen_width():
[323] w = (float)hypot(PlotSize[0], PlotSize[1]) / 1016.0f * 72.0f;
[328] w *= params[0].value.number;
...
pen = (int)params[1].value.number;
[335] Pens[pen].width = w;
There is a lack of a check on user provided index value at line [355].
An attacker may control values of PlotSize[0] and PlotSize[1]. By
selecting the opcode PS and pen width to 1.0 and provide appropriate
multiplier later at line [328] an attacker can overwrite memory address
with arbitrary data.
From filter/hpgl-attr.c:PC_pen_color():
The same flaw exists here with the CR opcode.
-- CREDIT --------------------------------------------------------------
This vulnerability was discovered by:
* regenrecht
-- FURTHER DETAILS -----------------------------------------------------
If you have any questions, comments, concerns or require additional
details please feel free to contact me via the following:
Additionally, you may contact the manager of security response at:
We can alternatively be reached via e-mail at:
Our PGP key is available from:
-- INFORMATION ABOUT THE ZDI -------------------------------------------
Established by TippingPoint, The Zero Day Initiative (ZDI) represents
a best-of-breed model for rewarding security researchers for responsibly
disclosing discovered vulnerabilities.
The ZDI is unique in how the acquired vulnerability information is
used. TippingPoint does not re-sell the vulnerability details or any
exploit code. Instead, upon notifying the affected product vendor,
TippingPoint provides its customers with zero day protection through
its intrusion prevention technology. Explicit details regarding the
specifics of the vulnerability are not exposed to any parties until
an official vendor patch is publicly available. Furthermore, with the
altruistic aim of helping to secure a broader user base, TippingPoint
provides this vulnerability information confidentially to security
vendors (including competitors) who have a vulnerability protection or
mitigation product.
Please contact us for further information or refer to:
-- DISCLOSURE POLICY ---------------------------------------------------
Our vulnerability disclosure policy is available online at:
The text was updated successfully, but these errors were encountered: