CVE-2016-1494: RSA Package Spoofing Vulnerability in Python-RSA

rsa Updated 02 Oct 2025

Summary

13/01/2016
Yes i
Moderate
5.3

CVE-2016-1494: The verify function in the RSA package for Python (Python-RSA) before 3.3 allows attackers to spoof signatures with a small public exponent via crafted signature padding, aka a BERserk attack. Affects rsa versions < 3.3. Fixed in 3.3. How to fix ↓

Also tracked for

The same CVE-2016-1494 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

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.

Check my app free

No signup required · Results in about 60 seconds

Sponsored Devnack Penetration testing for web, API and mobile Manual testing by engineers who build software, not an auditor's checklist. Trusted by teams at Swift and Google Talk to Devnack

Background

Python-RSA is a Python package that provides a simple interface for generating and verifying RSA signatures. It is commonly used for cryptographic operations in Python applications. The package allows users to generate RSA key pairs, sign data using the private key, and verify signatures using the corresponding public key.

Vulnerability Detail

The RSA package in Python-RSA before version 3.3 is vulnerable to a spoofing attack known as a BERserk attack. This vulnerability allows attackers to create forged signatures with a small public exponent by exploiting crafted signature padding. By manipulating the signature padding, an attacker can deceive the verification process and make the forged signature appear valid. This can lead to various security issues, such as unauthorized access, data tampering, or impersonation attacks.

How To Fix

Latest published version: 4.9.1 as of 22 Oct 2026

pip install --upgrade "rsa==4.9.1"

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

3.3

This is the first release that contains the fix.

pip install --upgrade "rsa==3.3"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

There is no known workaround for this vulnerability. It is recommended to update the Python-RSA package to the latest version as soon as possible.

Conclusion

The Python-RSA package prior to version 3.3 is vulnerable to a spoofing attack that allows attackers to create forged signatures. To mitigate this vulnerability, it is crucial to update the package to version 3.3 or later. Failure to do so may result in unauthorized access, data tampering, or impersonation attacks. For further support on vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for rsa →

Share this vulnerability

FAQ

This vulnerability allows attackers to spoof signatures, potentially leading to unauthorized access, data tampering, or impersonation attacks.

You can use Vulert's playground at Vulert Scanner to check if your application is affected by this vulnerability. Simply provide your Pipfile.lock file, and Vulert will analyze it for any open-source vulnerabilities, including this one.

While there is no known public exploit for this vulnerability, it is still crucial to update the Python-RSA package to prevent potential attacks.

The only effective mitigation is to update the Python-RSA package to version 3.3 or later. It is recommended to do so as soon as possible.

Yes, you can manually verify signatures using the updated Python-RSA package. By ensuring that the package is updated to version 3.3 or later, you can mitigate the risk of signature spoofing.

Related vulnerabilities

Recent vulnerabilities recorded for rsa.

How To Fix

Latest published version: 4.9.1 as of 22 Oct 2026

pip install --upgrade "rsa==4.9.1"

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

3.3

This is the first release that contains the fix.

pip install --upgrade "rsa==3.3"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback