Use-after-free in js_print_object in QuickJS
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| QuickJS | QuickJS | unaffected |
|
No data.
| Vendor | Product | Versions |
|---|---|---|
| Quickjs-ng | Quickjs | — |
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.407% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Quickjs Project
Quickjs Project quickjs |
|
| CPEs | cpe:2.3:a:quickjs_project:quickjs:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Quickjs Project
Quickjs Project quickjs |
|
| Metrics |
cvssV3_1
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Quickjs-ng
Quickjs-ng quickjs |
|
| Vendors & Products |
Quickjs-ng
Quickjs-ng quickjs |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | In quickjs, in js_print_object, when printing an array, the function first fetches the array length and then loops over it. The issue is, printing a value is not side-effect free. An attacker-defined callback could run during js_print_value, during which the array could get resized and len1 become out of bounds. This results in a use-after-free.A second instance occurs in the same function during printing of a map or set objects. The code iterates over ms->records list, but once again, elements could be removed from the list during js_print_value call. | |
| Title | Use-after-free in js_print_object in QuickJS | |
| Weaknesses | CWE-416 | |
| References |
| |
| Metrics |
cvssV4_0
|