Safeguard
Vulnerability Analysis•

CVE-2023-52353: High TLS Version Reset Bug in Mbed TLS

CVE-2023-52353 is a high (7.5) Mbed TLS flaw where session reset keeps the last negotiated TLS version as the new maximum. Fixed in Mbed TLS 3.6.

Safeguard Security Team
3 min read

CVE-2023-52353 is a high severity (7.5) flaw in Mbed TLS through 3.5.1. When a session is reset, the maximum negotiable TLS version is mishandled, so an earlier TLS 1.2 connection can cap later ones. The maintainers say the fix shipped in Mbed TLS 3.6, so upgrade to it.

What's affected

NVD lists Mbed TLS through 3.5.1. In the project issue 8654, a maintainer confirms the bug was still present in 3.5 and that the fix was released in Mbed TLS v3.6, through the merge of a change titled "Reset properly the TLS maximum negotiable version" on 9 February 2024.

The function involved is mbedtls_ssl_session_reset. The server example program resets the SSL context between connections with it, and a maintainer notes that the maximum negotiable version is not reset properly: if the last connection negotiated TLS 1.2, that becomes the new maximum.

Weakness class: CWE-384.

Severity differs in tone. NVD scores it 7.5 with an integrity impact (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N). The project treats it as a bug in version handling: in the original report a client asking for TLS 1.3 was refused after an earlier TLS 1.2 connection to the same server process. I did not find a project security advisory, so I cannot give you the maintainers' own severity.

How to check if you're exposed

Find which Mbed TLS version your product links against. For system packages:

dpkg -l | grep -i mbedtls
rpm -qa | grep -i mbedtls

For source builds, read the version macros in include/mbedtls/build_info.h. For vendored copies inside a firmware or application tree, search for that header. You can run a free in-browser dependency scan at gold.safeguard.sh/scan to see which of your projects pull this component in, directly or through another package.

What to do now

  1. Upgrade to Mbed TLS 3.6 or later, or a vendor build that states it includes this fix.
  2. If your server code reuses an SSL context across connections, review how it calls the session reset function.
  3. Ask embedded and firmware suppliers whether their builds are based on 3.5.1 or earlier.
  4. Retest TLS 1.3 clients against a long running server after the upgrade.

Why it matters

The weakness is a state handling error. When a context is reused, one connection's result leaks into the next. That is why NVD files it under session fixation, although the issue thread describes a version negotiation bug and not a session hijack.

In practice it matters most for long running servers built on Mbed TLS that reuse contexts. The CVE is not in the CISA Known Exploited Vulnerabilities catalog per the record.

Quick check

Which version fixes CVE-2023-52353?

A maintainer comment on the project issue says the fix was released in Mbed TLS v3.6.

Is this a downgrade attack?

The NVD wording says the maximum version is mishandled. The project issue shows the visible effect as a TLS 1.3 client being refused after TLS 1.2 use. I would not claim more than that.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.