{"id":"CVE-2024-5991","aliases":["ALPINE-CVE-2024-5991","AZL-48342","AZL-48368","DEBIAN-CVE-2024-5991","EUVD-2024-47107","GHSA-jwjf-h4v6-qrpp","JLSEC-2026-685","UBUNTU-CVE-2024-5991"],"status":"published","title":"Buffer overread in domain name matching","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","severity":{"version":"4.0","score":10,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.0056,"percentile":0.47076,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-125"],"published":"2024-08-27T18:33:27Z","modified":"2026-11-03T06:32:50Z","fixes":[{"ecosystem":"Alpine:v3.20","package":"wolfssl","fixed_in":["5.7.2-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.21","package":"wolfssl","fixed_in":["5.7.2-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.22","package":"wolfssl","fixed_in":["5.7.2-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.23","package":"wolfssl","fixed_in":["5.7.2-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"wolfssl","fixed_in":["5.7.2-r0"],"sources":["osv"]},{"ecosystem":"Azure Linux:2","package":"mariadb","fixed_in":["10.6.9-4"],"sources":["osv"]},{"ecosystem":"Azure Linux:3","package":"mariadb","fixed_in":["10.6.9-6"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"wolfssl","fixed_in":["5.7.2-0.1"],"sources":["osv"]},{"ecosystem":"Julia","package":"wolfSSL_jll","fixed_in":["5.7.2+0"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Alpine:v3.20","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.7.2-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.21","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.7.2-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.22","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.7.2-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.7.2-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.7.2-r0"}]}]},{"source":"osv","ecosystem":"Azure Linux:2","package":"mariadb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"10.6.9-4"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"mariadb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"10.6.9-6"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.5.4-2","5.5.4-2+deb12u1","5.5.4-2+deb12u2","5.5.4-2+deb12u3","5.5.4-2.1","5.6.4-1","5.6.4-2","5.6.6-1","5.6.6-1.1","5.6.6-1.2","5.6.6-1.3","5.6.6-1.3~exp1","5.7.0-0.1","5.7.0-0.2","5.7.0-0.3","5.7.2-0.1","5.7.2-0.2","5.7.2-0.3","5.7.2-0.4","5.8.2-1","5.8.2-1.1","5.8.2-1.2","5.8.4-1","5.9.0-0.1","5.9.0-0.2","5.9.1-0.1","5.9.2-1","5.9.2-1.1","5.9.2-1.2"]},{"source":"osv","ecosystem":"Debian:13","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.7.2-0.1"}]}]},{"source":"osv","ecosystem":"Julia","package":"wolfSSL_jll","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"5.7.2+0"}]}]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.4.8+dfsg-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.10.2+dfsg-2","3.12.0+dfsg-1","3.12.2+dfsg-1","3.13.0+dfsg-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.1.0+dfsg-2","4.2.0+dfsg-1","4.2.0+dfsg-2","4.2.0+dfsg-3","4.3.0+dfsg-2"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.6.0-3","5.0.0-1","5.1.1-1","5.2.0-1","5.2.0-2"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.5.4-2","5.5.4-2.1","5.6.4-2","5.6.6-1.2","5.6.6-1.3","5.6.6-1.3build1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.7.2-0.1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.9.1-0.1","5.9.2-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"wolfssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.7.2-0.1","5.8.2-1.2","5.8.4-1","5.9.1-0.1"]}],"products":[{"vendor":"wolfssl","product":"wolfssl"}],"references":[{"url":"https://https://github.com/wolfSSL/wolfssl/pull/7604","tags":["Broken Link","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-5991","tags":["web","advisory"]},{"url":"https://github.com/wolfSSL/wolfssl/pull/7604","tags":["Issue Tracking","Patch","fix","web","report"]},{"url":"https://github.com/advisories/GHSA-jwjf-h4v6-qrpp","tags":["web"]},{"url":"https://security.alpinelinux.org/vuln/CVE-2024-5991","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/5xxx/CVE-2024-5991.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2024-5991","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2024-5991","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2024-5991","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2024-5991","title":"Buffer overread in domain name matching","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","status":"published","published":"2024-08-27T18:33:27.55Z","modified":"2024-08-27T20:06:24.558Z","cvss":[{"version":"4.0","score":10,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H","level":"critical","assessor":"cna"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T14:34:01.286506Z"}],"euvd":[{"id":"EUVD-2024-47107","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","status":"published","published":"2024-08-27T18:33:27Z","modified":"2024-08-27T20:06:24Z","cvss":[{"version":"4.0","score":10,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H","level":"critical"}],"updated_at":"2026-11-03T00:56:09.903799Z"}],"ghsa":[{"id":"GHSA-jwjf-h4v6-qrpp","title":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite...","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","status":"published","published":"2024-08-27T21:31:14Z","modified":"2024-09-07T00:31:29Z","cvss":[{"version":"4.0","score":10,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"critical"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T14:58:11.86243Z"}],"nvd":[{"id":"CVE-2024-5991","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","status":"published","published":"2024-08-27T19:15:18.08Z","modified":"2026-06-17T08:17:03.577Z","cvss":[{"version":"4.0","score":10,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"critical","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T14:10:21.771404Z"}],"osv":[{"id":"ALPINE-CVE-2024-5991","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","status":"published","published":"2024-08-27T19:15:18.08Z","modified":"2026-11-03T06:32:50.340269008Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-03T07:16:46.202932Z"},{"id":"AZL-48342","title":"CVE-2024-5991 affecting package mariadb for versions less than 10.6.9-4","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","status":"published","published":"2024-08-27T19:15:18Z","modified":"2026-04-21T04:33:00.29448Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:28:06.032783Z"},{"id":"AZL-48368","title":"CVE-2024-5991 affecting package mariadb for versions less than 10.6.9-6","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","status":"published","published":"2024-08-27T19:15:18Z","modified":"2026-04-21T04:55:55.689065Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:28:06.032783Z"},{"id":"CVE-2024-5991","title":"Buffer overread in domain name matching","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","status":"published","published":"2024-08-27T18:33:27.55Z","modified":"2026-10-28T02:30:41.678445101Z","cvss":[{"version":"4.0","score":10,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H","level":"critical"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T15:44:45.107804Z"},{"id":"DEBIAN-CVE-2024-5991","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","status":"published","published":"2024-08-27T19:15:18.08Z","modified":"2026-11-02T12:03:11.844900187Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:44.747956Z"},{"id":"JLSEC-2026-685","title":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being...","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function `X509_check_host()` takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","status":"published","published":"2026-07-14T21:41:35.775Z","modified":"2026-07-25T18:24:46.151239801Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"},{"version":"4.0","score":10,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"critical"}],"updated_at":"2026-11-02T15:47:19.003546Z"},{"id":"UBUNTU-CVE-2024-5991","description":"In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.","status":"published","published":"2024-08-27T19:15:00Z","modified":"2026-10-17T12:56:46.428377706Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"},{"version":"4.0","score":10,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H","level":"critical"}],"updated_at":"2026-11-02T16:55:18.664792Z"}]}}
