There exists a use after free/double free in libwebp. An attacker can use the ApplyFiltersAndEncode() function and loop through to free best.bw and assign best = trial pointer. The second loop will then return 0 because of an Out of memory error in VP8 encoder, the pointer is still assigned to trial and the AddressSanitizer will attempt a double free.
{
"license": "CC-BY-4.0",
"sources": [
{
"html_url": "https://nvd.nist.gov/vuln/detail/CVE-2023-1999",
"published": "2023-06-20T12:15:09.600Z",
"database_specific": {
"status": "Modified"
},
"modified": "2025-02-13T17:16:01.293Z",
"url": "https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2023-1999",
"id": "CVE-2023-1999",
"imported": "2026-05-03T08:43:14.502Z"
}
]
}