Python port of RetireJS - A tool to scan for vulnerabilities in JavaScript libraries
Project description
UnretiredJS
A Python port of RetireJS - A tool to scan for vulnerabilities in JavaScript libraries.
Description
UnretiredJS is a Python library that helps you identify known vulnerabilities in JavaScript libraries used in your web applications. It's a port of the popular RetireJS tool, bringing the same powerful vulnerability scanning capabilities to Python projects.
Note: This is a fork of FallibleInc/retirejslib, maintained and updated with additional features and improvements.
Installation
pip install unretiredjs
Usage
Basic Usage
# Method 1: Import specific function
from unretiredjs import scan_endpoint
# Method 2: Import the entire module
import unretiredjs
# Scan a remote JavaScript file
# Using specific import
results = scan_endpoint("http://code.jquery.com/jquery-1.6.min.js")
# Or using full module import
results = unretiredjs.scan_endpoint("http://code.jquery.com/jquery-1.6.min.js")
Sample Output
[
{
'detection': 'filecontent',
'vulnerabilities': [
{
'info': [
'http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-4969',
'http://research.insecurelabs.org/jquery/test/'
],
'identifiers': {
'CVE': ['CVE-2011-4969']
},
'severity': 'medium'
}
],
'version': '1.6.0',
'component': 'jquery'
}
]
Features
- Scan remote JavaScript files for known vulnerabilities
- Detect vulnerable versions of popular JavaScript libraries
- Comprehensive vulnerability database
- Easy to integrate into Python projects
- Modern Python package structure with src layout
Requirements
- Python 3.6 or higher
- requests>=2.25.0
Development
Project Structure
unretiredjs/
├── src/
│ └── unretiredjs/
│ ├── __init__.py
│ ├── retirejs.py
│ ├── vulnerabilities.py
│ └── update_vulnerabilities.py
├── tests/
│ ├── test_retirejs.py
│ ├── test_update_vulnerabilities.py
│ └── compare_results.py
├── pyproject.toml
└── README.md
Vulnerability Data Updates
The vulnerability data used by UnretiredJS is stored in src/unretiredjs/vulnerabilities.py. This data is sourced from the official RetireJS repository (https://raw.githubusercontent.com/RetireJS/retire.js/master/repository/jsrepository.json).
Updates are handled automatically by a GitHub Action defined in .github/workflows/update_retirejs_data.yml. This action runs on a monthly schedule (at 00:00 UTC on the 1st day of every month) to fetch the latest vulnerability information. It also allows for manual triggering via the GitHub Actions UI.
To run the update script manually:
# Install development dependencies
pip install -e ".[dev]"
# Run the update script
python -m unretiredjs.update_vulnerabilities
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Author
Anand Kumar - GitHub
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unretiredjs-1.4.10.tar.gz.
File metadata
- Download URL: unretiredjs-1.4.10.tar.gz
- Upload date:
- Size: 53.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b48ab2c6576a838a1e1feebedff67db29bc6c0931b4ae074546076812e79932e
|
|
| MD5 |
2a90898b5959e391e9ba1aa557df473a
|
|
| BLAKE2b-256 |
a6abdec6d5075eb0ae68811338f1c800dafaed9c03900b3d65f60965f8993a8e
|
File details
Details for the file unretiredjs-1.4.10-py3-none-any.whl.
File metadata
- Download URL: unretiredjs-1.4.10-py3-none-any.whl
- Upload date:
- Size: 54.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbba4aab46810246ce4163bf057d81a05dd70bb17d695da6102244a345c96ae4
|
|
| MD5 |
4393fa8217455fb7bf62cb253a4573e7
|
|
| BLAKE2b-256 |
8688c6f3bd350a55ebfe9ea42ed5fd247975f41a1d6cc414a10523e4f4efb814
|