CVE-2026-95831: Crypt::SelfCertificate versions from 1.01 through 1.05 for Perl contains malware which executes Python code from an obfuscated URL

Published Sep 22, 2026
·
Updated

Crypt::SelfCertificate versions from 1.01 through 1.05 for Perl contains malware which executes Python code from an obfuscated URL.

The generatecertificate runs a Python script saved as a certificate file. The pyhton script attempts to retrieve code from a hardcoded http URL that is obfuscated with base64 encoding and run the response body directly.

The impact is that arbitrary code can be invoked as the user, without a dropped script being saved on the affected host.

The releases have no test scripts nor build hooks. The intention may have been to trigger the payload after installation.

For version 1.01, the dropper script is in lib/Crypt/SelfCertificate/sample/validate.p12.

For version 1.05, the dropper script is in lib/Crypt/SelfCertificate/sample/cert7.pem.

The SHA-256 digests of the files are

fbff21f45ff748365062a5e36fb2d72558cad82a507a6f357f320b4fcdf07760 Crypt-SelfCertificate-1.01.tar.gz 27b2d2d3174ad771474fff2521f5084ec231e9218ea8c832515aef1cbd5897bc lib/Crypt/SelfCertificate/sample/validate.p12

9fdfa7d69b034b77d4510cda567e8da1e486ca81c7daaadc5732a45c41d71991 Crypt-SelfCertificate-1.05.tar.gz 27b2d2d3174ad771474fff2521f5084ec231e9218ea8c832515aef1cbd5897bc lib/Crypt/SelfCertificate/sample/cert7.pem

Affected Software

1 affected component
cpan/Crypt::SelfCertificate>=1.01<=1.05

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Operational

    Treat systems on which Crypt::SelfCertificate versions 1.01 through 1.05 were installed as potentially compromised and investigate them accordingly.

Event History

Sep 22, 2026
CVE Published
via MITRE·06:21 PM
Data Sourced
via MITRE·06:21 PM
RemedyDescriptionWeakness
Data Sourced
via NVD·07:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

What action triggers the malicious behavior?

The behavior is triggered when generate_certificate runs the Python script stored in a certificate-file path. That script attempts to download code from a hardcoded, base64-obfuscated HTTP URL and executes the response directly as the current user.

2

Which systems are realistically exposed?

Systems with Crypt::SelfCertificate versions 1.01 through 1.05 are at risk if generate_certificate is invoked. The downloaded payload can run with the privileges of the user invoking it, and no separate dropped script is required on the host.

3

How can I check for known affected package contents?

For version 1.01, inspect lib/Crypt/SelfCertificate/sample/validate.p12, which is identified with SHA-256 27b2d2d3174ad771474fff2521f5084ec231e9218ea8c832515aef1cbd5897bc; the 1.01 archive digest is fbff21f45ff748365062a5e36fb2d72558cad82a507a6f357f320b4fcdf07760. For version 1.05, the described dropper location is lib/Crypt/SelfCertificate/sample/cert7.pem, and the archive digest is 9fdfa7d69b034b77d4510cda567e8da1e486ca81c7daaadc5732a45c41d71991.

4

What should be done if patching is not immediately possible?

Do not invoke generate_certificate from affected releases, and prevent those package versions from being installed or used. Restricting outbound HTTP access can reduce the script's ability to retrieve its remote payload, but the available information does not establish this as a complete mitigation.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203