# CVE-2015-0204: Weak cryptography in n/a

> Remote attackers can downgrade SSL connections to weak export-grade RSA keys, enabling brute-force decryption of traffic.

- **Severity:** Medium 4.3 (`AV:N/AC:M/Au:N/C:N/I:P/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 9 Jan 2015
- **Updated:** 14 Oct 2026
- **Also known as:** DEBIAN-CVE-2015-0204, GHSA-ff55-77ff-xv8x, UBUNTU-CVE-2015-0204

## What is CVE-2015-0204?

CVE-2015-0204 is a medium-severity vulnerability in Openssl Openssl, published on 9 Jan 2015. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

The ssl3_get_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8zd, 1.0.0 before 1.0.0p, and 1.0.1 before 1.0.1k allows remote SSL servers to conduct RSA-to-EXPORT_RSA downgrade attacks and facilitate brute-force decryption by offering a weak ephemeral RSA key in a noncompliant role, related to the "FREAK" issue.  NOTE: the scope of this CVE is only client code based on OpenSSL, not EXPORT_RSA issues associated with servers or other TLS implementations.

Weakness: CWE-310

## Which versions are affected by CVE-2015-0204?

It affects 1 product.


Products: Openssl Openssl.

## How do I fix CVE-2015-0204?

Upgrade to a fixed version.

## Is CVE-2015-0204 being exploited?

There is no known exploitation of CVE-2015-0204 in the wild and no public exploit code.

Public exploit code:

- Basic BASH Script to Automate OpenSSL based testing for FREAK Attack (CVE-2015-0204) as advised by Akamai. (github_poc): https://github.com/AbhishekGhosh/FREAK-Attack-CVE-2015-0204-Testing-Script
- A2SV = Auto Scanning to SSL Vulnerability HeartBleed, CCS Injection, SSLv3 POODLE, FREAK... etc Support Vulnerability [CVE-2007-1858] Anonymous Cipher [CVE-2012-4929] CRIME(SPDY) [CVE-2014-0160] CCS Injection [CVE-2014-0224] HeartBleed [CVE-2014-3566] SSLv3 POODLE [CVE-2015-0204] FREAK Attack [CVE-2015-4000] LOGJAM Attack [CVE-2016-0800] SSLv2 DROWN Installation : $ apt update && apt upgrade $ apt install git $ apt install python2 $ apt install python $ git clone https://github.com/hahwul/ a2sv $ cd a2sv $ chmod +x * $ pip2 install -r requirements.txt usage : $ python2 a2sv.py -h It shows all commands how we can use this tool $ python a2sv.py -t 127.0.0.1 127.0.0.1 = target means here own device (github_poc): https://github.com/anthophilee/A2SV--SSL-VUL-Scan
- Multithreaded FREAK scanner, used to detect SSL EXP Ciphers, vulnerable to CVE-2015-0204 (github_poc): https://github.com/scottjpack/Freak-Scanner
- This script check if your list of server is accepting Export cipher suites and could be vulnerable to CVE-2015-0204 (github_poc): https://github.com/felmoltor/FreakVulnChecker
- https://github.com/niccoX/patch-openssl-CVE-2014-0291_CVE-2015-0204 (github_poc): https://github.com/niccoX/patch-openssl-CVE-2014-0291_CVE-2015-0204

## Other vulnerabilities in Openssl Openssl

- [CVE-2009-3245](https://insights.sbomify.com/CVE-2009-3245/): Null dereference in n/a (critical 10.0)
- [CVE-2006-3738](https://insights.sbomify.com/CVE-2006-3738/): Memory corruption in n/a (critical 10.0)
- [CVE-2026-63073](https://insights.sbomify.com/CVE-2026-63073/): Untrusted Sender DN Used as Format String in CMP Response Validation (critical 9.8)
- [CVE-2016-6309](https://insights.sbomify.com/CVE-2016-6309/): Use after free in n/a (critical 9.8)
- [CVE-2016-0799](https://insights.sbomify.com/CVE-2016-0799/): Integer overflow in n/a (critical 9.8)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2015-0204 and fix it if it is affected.

What it is: CVE-2015-0204 is a medium-severity vulnerability in Openssl Openssl, published on 9 Jan 2015. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2015-0204 in the wild and no public exploit code.

Affected product: Openssl Openssl. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2015-0204/ (Markdown: https://insights.sbomify.com/CVE-2015-0204/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2015-0204
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2015-0204
- OSV: https://osv.dev/vulnerability/CVE-2015-0204

---
From sbomify Insights: https://insights.sbomify.com/CVE-2015-0204/
Summaries are generated and may contain mistakes; the official description above is the record.
