cpython -- Use-after-free in "unicode_escape" decoder with error handler
[email protected] reports: There is an issue in CPython when using `bytes.decode("unicode_escape", error="ignore|replace")`. If you are not using the "unicode_escape" encoding or an error handler your usage is not affected. To work-around this issue you may stop using the error= handler and instead wrap the bytes.decode() call in a try-except catching the DecodeError.
Affected versions
- python39 < 3.9.22_1
- python310 < 3.10.17_1
- python311 < 3.11.12_1
- python312 < 3.12.10_1
By system
0 still vulnerable, 6 fixed. Where VuXML applies (FreeBSD, DragonFly, FreeBSD's derivatives) a port is vulnerable while its version is in a range; pkgsrc says itself whether it lists a CVE of this advisory; OpenBSD and MidnightBSD keep no list this site reads, so their row is only an estimate: FreeBSD's ranges applied to upstream's version.
| System | Port | Version | State | Fixed |
|---|---|---|---|---|
| DragonFly | lang/python39 | 3.9.22_1 | fixed | |
| MidnightBSD | lang/linux-rl9-python3 | 3.9.23_1 | out of range, by version | |
| DragonFly | lang/python310 | 3.10.17_1 | fixed | |
| NetBSD | lang/python310 | 3.10.21 | not listed | |
| GhostBSD | lang/python310 | 3.10.21 | fixed | |
| DragonFly | lang/python311 | 3.11.12_1 | fixed | |
| NetBSD | lang/python311 | 3.11.16 | not listed | |
| MidnightBSD | lang/python311 | in range, by version | ||
| FreeBSD | lang/python311 | 3.11.17 | fixed | |
| FreeBSD | lang/python312 | 3.12.15 | fixed | |
| NetBSD | lang/python312 | 3.12.14 | not listed | |
| MidnightBSD | lang/python312 | in range, by version |