View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000006 | file | General | public | 2018-06-22 14:55 | 2018-08-01 09:05 |
| Reporter | tobias | Assigned To | christos | ||
| Priority | normal | Severity | crash | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Platform | i686 | OS | Linux | OS Version | 4.17.2 |
| Summary | 0000006: out of boundary read in DER parser | ||||
| Description | It is possible to trigger an out of boundary read in DER parser if a custom magic file is used. Parsing the length of a tag allows UINT32_MAX which will overflow the check if enough memory is available. It is therefore needed to check for an UINT32_MAX overflow before checking the available amount of data. | ||||
| Steps To Reproduce | $ mkdir ~/magic $ cp der-magic ~/magic $ file -m ~/magic poc.der Segmentation fault (core dumped) $ _ | ||||
| Tags | No tags attached. | ||||
|
|
file-5.33-der.patch (326 bytes)
--- file-5.33/src/der.c~ 2018-06-17 13:03:38.680169477 +0200 +++ file-5.33/src/der.c 2018-06-17 13:03:42.128607756 +0200 @@ -199,7 +199,7 @@ for (i = 0; i < digits; i++) len = (len << 8) | c[(*p)++]; - if (*p + len >= l) + if (len > UINT32_MAX - *p || *p + len >= l) return DER_BAD; return CAST(uint32_t, len); } |
|
|
Patch applied thanks! |
|
|
feedback timeout |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2018-06-22 14:55 | tobias | New Issue | |
| 2018-06-22 14:55 | tobias | File Added: file-5.33-der.patch | |
| 2018-06-22 14:55 | tobias | File Added: poc.der | |
| 2018-06-22 14:55 | tobias | File Added: der-magic | |
| 2018-06-23 15:15 | christos | Assigned To | => christos |
| 2018-06-23 15:15 | christos | Status | new => assigned |
| 2018-06-23 15:15 | christos | Status | assigned => feedback |
| 2018-06-23 15:15 | christos | Note Added: 0000003 | |
| 2018-08-01 09:05 | christos | Status | feedback => resolved |
| 2018-08-01 09:05 | christos | Resolution | open => fixed |
| 2018-08-01 09:05 | christos | Note Added: 0000029 |