Skip to main content

Tracking high-risk oss packages: abandoned, undermaintained, or CVE-exposed.

Project description

ossatrisk

ossatrisk surfaces widely-used open source packages with hidden risks, like abandoned maintenance, unpatched CVEs, or a single-maintainer bus factor.

Only packages with high impact and broad usage are flagged.

The goal isn’t to blame anyone, but to get a clear picture of the ecosystem and act constructively, through contributions, forks where necessary, and fixes that help everyone relying on the code.

  • Starting with the PHP ecosystem. More ecosystems planned.
  • Datasets are updated daily.

CLI usage

You can install ossatrisk via PyPI:

pip install ossatrisk

Scan your project

# Scan the current directory for risky PHP packages
ossatrisk scan --ecosystem php

Options:

  • --ecosystem (required) – currently supports only php.
  • --format – output format; text (default) or json. Use json for machine-readable output.

Package Risk Assessment Algorithm

This project evaluates the risk level of software packages based on several key factors, helping developers identify dependencies that may pose potential stability or security issues.

1. Package Selection

  1. We fetch popular packages from public package registries (e.g., Packagist, PyPI, npm).
  2. From these, we filter packages that have not had a release in the last 12 months, as older packages are generally more likely to have maintenance or security issues. Only these packages are considered for risk scoring.

2. Risk Scoring Algorithm

For each selected package, a risk score is computed where higher scores indicate higher risk. The algorithm considers multiple factors:

Factor Description Weight / Logic
Recency Time since the latest release Older releases are riskier. The risk increases exponentially with age. If the package has very few open issues, recency is weighted less. If the package has many open issues, recency is slightly increased.
Known Vulnerabilities Number of publicly reported security vulnerabilities (CVEs, advisories) Each vulnerability significantly increases the risk.
Maintainers Number of maintainers contributing to the package Packages with few maintainers are considered riskier. Risk decreases as the number of maintainers increases.
Popularity Downloads or usage metrics Highly used packages have larger potential impact if issues arise. Risk is scaled logarithmically with download counts or usage statistics.
Open Issues Number of unresolved issues in the package repository More open issues indicate potential instability or lack of maintenance.

3. Risk Score Calculation

The final risk score is calculated as:

risk_score = recency_risk * vulnerability_risk * maintainer_risk * popularity_risk * issues_risk

This approach ensures that packages which are older, have known vulnerabilities, few maintainers, widely used, and many unresolved issues receive higher scores, flagging them as higher-risk dependencies.

Contributing

Contributions welcome - especially:

  • Improving the scoring logic
  • Improving the project structure
  • Adding new ecosystems

Stargazers over time

Stargazers over time

License

MIT

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

ossatrisk-0.4.8.tar.gz (3.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ossatrisk-0.4.8-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file ossatrisk-0.4.8.tar.gz.

File metadata

  • Download URL: ossatrisk-0.4.8.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for ossatrisk-0.4.8.tar.gz
Algorithm Hash digest
SHA256 dd26b6374caecaf1ea8dc8dd0bac2626dad7ac445fc4cb0b65f1ff731fb0dd7c
MD5 e97e9d49528ed5583a68f374efe6385e
BLAKE2b-256 276fb136a9e4f6c27c13d624a1c09c282624ccc074f5ae72d6ed8c252a0b3537

See more details on using hashes here.

File details

Details for the file ossatrisk-0.4.8-py3-none-any.whl.

File metadata

  • Download URL: ossatrisk-0.4.8-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for ossatrisk-0.4.8-py3-none-any.whl
Algorithm Hash digest
SHA256 5cacaad3276c4455e372d9415b9a16fc3629f7bd32bd700da4679350f11cd7bc
MD5 5c20dff65ab03f895ce3dceaaa86cde5
BLAKE2b-256 f6b9af3a7c93aea033aaabf6bd51abf16a17c26ed13ae3ca23d44da7004e9205

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page