{"id":"CVE-2025-49600","aliases":["ALPINE-CVE-2025-49600","DEBIAN-CVE-2025-49600","EUVD-2025-20080","GHSA-r3gf-c2cf-vp8q","UBUNTU-CVE-2025-49600","openSUSE-SU-2026:21144-1"],"status":"published","title":"In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash...","description":"In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash computation fails and internal errors go unchecked, enabling LMS (Leighton-Micali Signature) forgery in a fault scenario. Specifically, unchecked return values in mbedtls_lms_verify allow an attacker (who can induce a hardware hash accelerator fault) to bypass LMS signature verification by reusing stale stack data, resulting in acceptance of an invalid signature. In mbedtls_lms_verify, the return values of the internal Merkle tree functions create_merkle_leaf_value and create_merkle_internal_value are not checked. These functions return an integer that indicates whether the call succeeded or not. If a failure occurs, the output buffer (Tc_candidate_root_node) may remain uninitialized, and the result of the signature verification is unpredictable. When the software implementation of SHA-256 is used, these functions will not fail. However, with hardware-accelerated hashing, an attacker could use fault injection against the accelerator to bypass verification.","severity":{"version":"3.1","score":4.9,"vector":"CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00158,"percentile":0.05005,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-325"],"published":"2025-07-04T00:00:00Z","modified":"2026-11-03T06:32:51Z","fixes":[{"ecosystem":"Alpine:v3.20","package":"mbedtls","fixed_in":["3.6.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.21","package":"mbedtls","fixed_in":["3.6.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.22","package":"mbedtls","fixed_in":["3.6.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.23","package":"mbedtls","fixed_in":["3.6.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"mbedtls","fixed_in":["3.6.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"mbedtls3","fixed_in":["3.6.4-r0"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"mbedtls","fixed_in":["3.6.4-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"mbedtls","fixed_in":["3.6.4-1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Alpine:v3.20","package":"mbedtls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.21","package":"mbedtls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.22","package":"mbedtls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"mbedtls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"mbedtls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"mbedtls3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.4-r0"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"mbedtls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.4-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"mbedtls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.4-1"}]}]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"mbedtls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.6.2-3ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"mbedtls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.6.2-3ubuntu1","3.6.5-0.1ubuntu1","3.6.5-0.1ubuntu2"]},{"source":"osv","ecosystem":"openSUSE:Leap 16.0","package":"mbedtls","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.6-bp160.1.1"}]}],"bundled":15}],"products":[{"vendor":"mbed","product":"mbedtls"},{"vendor":"trustedfirmware","product":"mbed_tls"}],"references":[{"url":"https://github.com/Mbed-TLS/mbedtls-docs/blob/main/security-advisories/mbedtls-security-advisory-2025-06-3.md","tags":["Third Party Advisory","advisory","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-49600","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-r3gf-c2cf-vp8q"},{"url":"https://security.alpinelinux.org/vuln/CVE-2025-49600","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/49xxx/CVE-2025-49600.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2025-49600","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2025-49600","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2025-49600","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1231708","tags":["report"]},{"url":"https://bugzilla.suse.com/1240051","tags":["report"]},{"url":"https://bugzilla.suse.com/1240052","tags":["report"]},{"url":"https://bugzilla.suse.com/1245808","tags":["report"]},{"url":"https://bugzilla.suse.com/1245809","tags":["report"]},{"url":"https://bugzilla.suse.com/1245810","tags":["report"]},{"url":"https://bugzilla.suse.com/1245811","tags":["report"]},{"url":"https://bugzilla.suse.com/1246783","tags":["report"]},{"url":"https://bugzilla.suse.com/1246784","tags":["report"]},{"url":"https://bugzilla.suse.com/1246973","tags":["report"]},{"url":"https://bugzilla.suse.com/1252341","tags":["report"]},{"url":"https://bugzilla.suse.com/1252454","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2024-49195","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2025-27809","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2025-27810","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2025-47917","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2025-48965","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2025-49087","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2025-49600","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2025-49601","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2025-52496","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2025-52497","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2025-54764","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2025-59438","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-25833","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-25834","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-25835","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2025-49600","description":"In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash computation fails and internal errors go unchecked, enabling LMS (Leighton-Micali Signature) forgery in a fault scenario. Specifically, unchecked return values in mbedtls_lms_verify allow an attacker (who can induce a hardware hash accelerator fault) to bypass LMS signature verification by reusing stale stack data, resulting in acceptance of an invalid signature. In mbedtls_lms_verify, the return values of the internal Merkle tree functions create_merkle_leaf_value and create_merkle_internal_value are not checked. These functions return an integer that indicates whether the call succeeded or not. If a failure occurs, the output buffer (Tc_candidate_root_node) may remain uninitialized, and the result of the signature verification is unpredictable. When the software implementation of SHA-256 is used, these functions will not fail. However, with hardware-accelerated hashing, an attacker could use fault injection against the accelerator to bypass verification.","status":"published","published":"2025-07-04T00:00:00Z","modified":"2025-07-08T14:36:23.748Z","cvss":[{"version":"3.1","score":4.9,"vector":"CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-325"],"updated_at":"2026-11-02T14:32:24.825718Z"}],"euvd":[{"id":"EUVD-2025-20080","description":"In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash computation fails and internal errors go unchecked, enabling LMS (Leighton-Micali Signature) forgery in a fault scenario. Specifically, unchecked return values in mbedtls_lms_verify allow an attacker (who can induce a hardware hash accelerator fault) to bypass LMS signature verification by reusing stale stack data, resulting in acceptance of an invalid signature. In mbedtls_lms_verify, the return values of the internal Merkle tree functions create_merkle_leaf_value and create_merkle_internal_value are not checked. These functions return an integer that indicates whether the call succeeded or not. If a failure occurs, the output buffer (Tc_candidate_root_node) may remain uninitialized, and the result of the signature verification is unpredictable. When the software implementation of SHA-256 is used, these functions will not fail. However, with hardware-accelerated hashing, an attacker could use fault injection against the accelerator to bypass verification.","status":"published","published":"2025-07-04T00:00:00Z","modified":"2025-07-08T14:36:23Z","cvss":[{"version":"3.1","score":4.9,"vector":"CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T20:32:12.59227Z"}],"ghsa":[{"id":"GHSA-r3gf-c2cf-vp8q","title":"In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash...","description":"In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash computation fails and internal errors go unchecked, enabling LMS (Leighton-Micali Signature) forgery in a fault scenario. Specifically, unchecked return values in mbedtls_lms_verify allow an attacker (who can induce a hardware hash accelerator fault) to bypass LMS signature verification by reusing stale stack data, resulting in acceptance of an invalid signature. In mbedtls_lms_verify, the return values of the internal Merkle tree functions create_merkle_leaf_value and create_merkle_internal_value are not checked. These functions return an integer that indicates whether the call succeeded or not. If a failure occurs, the output buffer (Tc_candidate_root_node) may remain uninitialized, and the result of the signature verification is unpredictable. When the software implementation of SHA-256 is used, these functions will not fail. However, with hardware-accelerated hashing, an attacker could use fault injection against the accelerator to bypass verification.","status":"published","published":"2025-07-04T15:31:10Z","modified":"2025-07-04T15:31:18Z","cvss":[{"version":"3.1","score":4.9,"vector":"CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"medium"}],"cwes":["CWE-325"],"updated_at":"2026-11-02T15:02:54.432789Z"}],"nvd":[{"id":"CVE-2025-49600","description":"In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash computation fails and internal errors go unchecked, enabling LMS (Leighton-Micali Signature) forgery in a fault scenario. Specifically, unchecked return values in mbedtls_lms_verify allow an attacker (who can induce a hardware hash accelerator fault) to bypass LMS signature verification by reusing stale stack data, resulting in acceptance of an invalid signature. In mbedtls_lms_verify, the return values of the internal Merkle tree functions create_merkle_leaf_value and create_merkle_internal_value are not checked. These functions return an integer that indicates whether the call succeeded or not. If a failure occurs, the output buffer (Tc_candidate_root_node) may remain uninitialized, and the result of the signature verification is unpredictable. When the software implementation of SHA-256 is used, these functions will not fail. However, with hardware-accelerated hashing, an attacker could use fault injection against the accelerator to bypass verification.","status":"published","published":"2025-07-04T15:15:22.277Z","modified":"2026-06-17T09:31:33.997Z","cvss":[{"version":"3.1","score":4.9,"vector":"CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-325"],"updated_at":"2026-11-02T14:11:16.997062Z"}],"osv":[{"id":"ALPINE-CVE-2025-49600","description":"In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash computation fails and internal errors go unchecked, enabling LMS (Leighton-Micali Signature) forgery in a fault scenario. Specifically, unchecked return values in mbedtls_lms_verify allow an attacker (who can induce a hardware hash accelerator fault) to bypass LMS signature verification by reusing stale stack data, resulting in acceptance of an invalid signature. In mbedtls_lms_verify, the return values of the internal Merkle tree functions create_merkle_leaf_value and create_merkle_internal_value are not checked. These functions return an integer that indicates whether the call succeeded or not. If a failure occurs, the output buffer (Tc_candidate_root_node) may remain uninitialized, and the result of the signature verification is unpredictable. When the software implementation of SHA-256 is used, these functions will not fail. However, with hardware-accelerated hashing, an attacker could use fault injection against the accelerator to bypass verification.","status":"published","published":"2025-07-04T15:15:22.277Z","modified":"2026-11-03T06:32:51.238934473Z","cvss":[{"version":"3.1","score":4.9,"vector":"CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"medium"}],"updated_at":"2026-11-03T07:16:46.202932Z"},{"id":"CVE-2025-49600","description":"In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash computation fails and internal errors go unchecked, enabling LMS (Leighton-Micali Signature) forgery in a fault scenario. Specifically, unchecked return values in mbedtls_lms_verify allow an attacker (who can induce a hardware hash accelerator fault) to bypass LMS signature verification by reusing stale stack data, resulting in acceptance of an invalid signature. In mbedtls_lms_verify, the return values of the internal Merkle tree functions create_merkle_leaf_value and create_merkle_internal_value are not checked. These functions return an integer that indicates whether the call succeeded or not. If a failure occurs, the output buffer (Tc_candidate_root_node) may remain uninitialized, and the result of the signature verification is unpredictable. When the software implementation of SHA-256 is used, these functions will not fail. However, with hardware-accelerated hashing, an attacker could use fault injection against the accelerator to bypass verification.","status":"published","published":"2025-07-04T00:00:00Z","modified":"2026-10-28T02:31:00.206646109Z","cvss":[{"version":"3.1","score":4.9,"vector":"CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"medium"}],"cwes":["CWE-325"],"updated_at":"2026-11-02T15:44:50.037003Z"},{"id":"DEBIAN-CVE-2025-49600","description":"In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash computation fails and internal errors go unchecked, enabling LMS (Leighton-Micali Signature) forgery in a fault scenario. Specifically, unchecked return values in mbedtls_lms_verify allow an attacker (who can induce a hardware hash accelerator fault) to bypass LMS signature verification by reusing stale stack data, resulting in acceptance of an invalid signature. In mbedtls_lms_verify, the return values of the internal Merkle tree functions create_merkle_leaf_value and create_merkle_internal_value are not checked. These functions return an integer that indicates whether the call succeeded or not. If a failure occurs, the output buffer (Tc_candidate_root_node) may remain uninitialized, and the result of the signature verification is unpredictable. When the software implementation of SHA-256 is used, these functions will not fail. However, with hardware-accelerated hashing, an attacker could use fault injection against the accelerator to bypass verification.","status":"published","published":"2025-07-04T15:15:22.277Z","modified":"2026-09-01T20:05:53.318376906Z","cvss":[{"version":"3.1","score":4.9,"vector":"CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:47.378563Z"},{"id":"UBUNTU-CVE-2025-49600","description":"In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash computation fails and internal errors go unchecked, enabling LMS (Leighton-Micali Signature) forgery in a fault scenario. Specifically, unchecked return values in mbedtls_lms_verify allow an attacker (who can induce a hardware hash accelerator fault) to bypass LMS signature verification by reusing stale stack data, resulting in acceptance of an invalid signature. In mbedtls_lms_verify, the return values of the internal Merkle tree functions create_merkle_leaf_value and create_merkle_internal_value are not checked. These functions return an integer that indicates whether the call succeeded or not. If a failure occurs, the output buffer (Tc_candidate_root_node) may remain uninitialized, and the result of the signature verification is unpredictable. When the software implementation of SHA-256 is used, these functions will not fail. However, with hardware-accelerated hashing, an attacker could use fault injection against the accelerator to bypass verification.","status":"published","published":"2025-07-04T15:15:00Z","modified":"2026-05-20T16:23:32.792976463Z","cvss":[{"version":"3.1","score":4.9,"vector":"CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T16:55:50.31802Z"},{"id":"openSUSE-SU-2026:21144-1","title":"Security update for mbedtls","description":"This update for mbedtls fixes the following issues:\n\nChanges in mbedtls:\n\n- Update to 3.6.6 (LTS maintenance update from 3.6.1); security fixes\n  accumulated across the 3.6.2-3.6.6 releases:\n  * CVE-2024-49195 (boo#1231708): buffer underrun in pkwrite when\n    writing an opaque key pair\n  * CVE-2025-27809 (boo#1240051): certificate verification accepted\n    arbitrary hostnames\n  * CVE-2025-27810 (boo#1240052): possible authentication bypass on\n    failed memory allocation / hardware errors\n  * CVE-2025-47917 (boo#1246783): misleading memory management in\n    mbedtls_x509_string_to_names()\n  * CVE-2025-48965 (boo#1246784): NULL pointer dereference after\n    mbedtls_asn1_store_named_data()\n  * CVE-2025-49087 (boo#1246973): timing side channel in PKCS#7\n    padding removal\n  * CVE-2025-49600 (boo#1245808): unchecked return values in LMS\n    verification allow signature bypass via fault injection\n  * CVE-2025-49601 (boo#1245809): out-of-bounds read in\n    mbedtls_lms_import_public_key()\n  * CVE-2025-52496 (boo#1245810): race in AES-NI support detection can\n    lead to AES key extraction or GCM forgery\n  * CVE-2025-52497 (boo#1245811): one-byte heap underflow when parsing\n    PEM-encrypted material\n  * CVE-2025-54764 (boo#1252341): timing attacks in RSA operations\n  * CVE-2025-59438 (boo#1252454): padding-oracle attack via timing of\n    cipher error reporting\n  * CVE-2026-25833: PSA RNG state duplicated across fork()\n  * CVE-2026-25834: TLS 1.3 HelloRetryRequest man-in-the-middle\n    session-resumption downgrade\n  * CVE-2026-25835: RNG state duplicated when application/VM state is\n    cloned\n","status":"published","published":"2026-06-22T13:34:13Z","modified":"2026-06-30T18:24:45.186057867Z","updated_at":"2026-11-02T16:58:41.885092Z"}]}}
