CVE-2022-30629: Session tickets lack random ticket_age_add in crypto/tls
Summary
CVE-2022-30629: Session tickets lack random ticket_age_add in crypto/tls. Affects stdlib across 2 version ranges.
< 1.17.11
>= 1.18.0-0, < 1.18.3
Fixed in 1.17.11 or 1.18.3, depending on the release line you run. How to fix ↓
Also tracked for
- golang · Bitnami
- golang-1.15 · Debian:11
The same CVE-2022-30629 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
The stdlib package in the Go ecosystem provides a collection of standard libraries for the Go programming language. One of the packages included is crypto/tls, which implements TLS (Transport Layer Security) protocols. TLS is widely used to secure network communications by providing encryption and authentication. However, a vulnerability has been identified in the crypto/tls package related to session tickets.
Vulnerability Detail
The vulnerability (CVE-2022-30629) allows an attacker who can observe TLS handshakes to correlate successive connections by comparing ticket ages during session resumption. When a TLS session is resumed using a session ticket, the session ticket generated by crypto/tls does not contain a randomly generated ticket_age_add. This lack of randomness enables an attacker to link a resumed TLS session with a previous connection, potentially leading to unauthorized access or information disclosure.
How To Fix
Latest published version: go1.25.5 as of 22 Oct 2026
go get stdlib@vgo1.25.5
Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.
If you can't move to the latest
The minimum fixed version depends on the release line you run.
-
< 1.17.111.17.11go get stdlib@v1.17.11 -
>= 1.18.0-0, < 1.18.31.18.3go get stdlib@v1.18.3
Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →
Workaround
As a workaround, developers can modify the crypto/tls package to include a randomly generated ticket_age_add in the session tickets. This can be done by modifying the serverHandshakeStateTLS13.sendSessionTickets function in the crypto/tls package. Here is an example of how the code can be modified:
def func (hs *serverHandshakeStateTLS13) sendSessionTickets() {
// Generate a random ticket_age_add
ticketAgeAdd := generateRandomTicketAgeAdd()
// Include the ticket_age_add in the session ticket
sessionTicket := generateSessionTicket(ticketAgeAdd)
// Send the session ticket to the client
sendSessionTicket(sessionTicket)
}
Conclusion
In conclusion, the crypto/tls package in the Go stdlib is vulnerable to a session ticket correlation issue. This vulnerability can be mitigated by updating the package to a fixed version or applying the provided workaround. For further support on vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for stdlib →
FAQ
The vulnerability allows an attacker to correlate resumed TLS sessions with previous connections, potentially leading to unauthorized access or information disclosure.
You can use Vulert's playground (https://vulert.com/scanner) to check if your application is affected by this vulnerability. Simply upload your Gopkg.lock file and Vulert will analyze it in real-time.
No, not all versions of the stdlib package are affected. The vulnerability was introduced in version 1.18.0-0 and fixed in version 1.18.3. Additionally, versions 1.17.11 and later are also fixed.
Yes, a patch is available for this vulnerability. Developers should update the affected package to version 1.17.11 or later, or version 1.18.3 or later, to apply the fix.
Yes, a workaround is available. Developers can modify the crypto/tls package to include a randomly generated ticket_age_add in the session tickets. Please refer to the 'workaround' section for more details.
References
Related vulnerabilities
Recent vulnerabilities recorded for stdlib.