Proposal: Add Attack Type Classification to Malware Advisories
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 30/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- github
- Domaine
- security
Piste de recherche
Commencez par la OSV Schema Documentation et les données existantes d’avis de malware dans database_specific, puis suivez les points d’intégration de l’équipe de sécurité npm et de GitHub Advisory Database. Le travail est terminé lorsque les métadonnées d’attaque sont classifiées, exportées de manière compatible et que Dependabot déclenche sélectivement des alertes pour les types d’attaque à fort impact, tout en supprimant par défaut les attaques par substitution.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Proposal: Add Attack Type Classification to Malware Advisories
Problem Statement
The current malware advisory system in the GitHub Advisory Database creates a significant security coverage gap. Dependabot suppresses all malware advisories due to high false positive rates from substitution attacks, but this blanket suppression also prevents alerts for critical threats like legitimate maintainer account compromises.
Recent Critical Incidents Missed by Dependabot
September 8-9, 2025: The qix account compromise affected 18+ popular packages (chalk, debug, ansi-styles) with 2+ billion weekly downloads. Malware was designed to steal cryptocurrency by intercepting wallet transactions.
- Advisory: GHSA-8mgj-vmr8-frr6 (debug), GHSA-ch7m-m9rf-8gvv (color-convert), etc.
- Result: Dependabot users received NO alerts despite critical compromise
August 26, 2025: The nx package compromise affected 3.5M+ weekly downloads, harvesting credentials, GitHub tokens, and cryptocurrency wallets from developer machines.
- Advisory: GHSA-cxm3-wv7p-598c
- Result: Dependabot users received NO alerts despite supply chain injection
Current Advisory Quality Issues
Malware advisories currently use generic boilerplate text regardless of attack type:
Any computer that has this package installed or running should be considered fully compromised.
All secrets and keys stored on that computer should be rotated immediately from a different computer...
This provides no actionable intelligence to distinguish between:
- Low-impact substitution attacks (typosquatting, registry confusion)
- High-impact account compromises (legitimate maintainer takeovers)
- Supply chain injections (CI/CD pipeline compromises)
Proposed Solution
Add Attack Type Classification to Malware Advisories
Extend the OSV format's database_specific field to include structured attack metadata:
{
"database_specific": {
"github_reviewed": true,
"github_reviewed_at": "2025-09-09T...",
"attack_type": "account-compromise",
"attack_vector": "phishing",
"payload_classification": "credential-stealer",
"scope": "single-maintainer"
}
}
Proposed Attack Type Taxonomy
substitution- Registry confusion, typosquatting, name similarity attacksaccount-compromise- Legitimate maintainer account takeoverssupply-chain-injection- CI/CD pipeline compromises, build system attacksdirect-malware- Intentionally malicious packages from malicious actorsinfrastructure-compromise- Third-party infrastructure takeovers (like fsevents cloud storage)
Enhanced Dependabot Logic
This would enable selective alerting:
- Alert on:
account-compromise,supply-chain-injection,direct-malware,infrastructure-compromise - Suppress by default:
substitution(with user opt-in available)
Benefits
1. Addresses Critical Security Gap
- Restores Dependabot coverage for legitimate high-impact threats
- Maintains noise reduction for substitution attacks
- Provides actionable threat intelligence
2. Improves Data Quality
- Forces structured analysis instead of generic templates
- Enables better threat intelligence and trend analysis
- Supports more sophisticated security tooling
3. Maintains Backward Compatibility
- Uses existing OSV
database_specificextensibility - No breaking changes to current advisory format
- Graceful degradation for tools that don't support new fields
4. Industry-Wide Impact
- Other security tools can leverage structured threat data
- Enables research on attack trends and patterns
- Sets precedent for structured malware classification
Implementation Path
Phase 1: npm Security Team Enhancement
- npm security team adds attack type classification during initial malware analysis
- Updates data pipeline to GitHub Advisory Database
Phase 2: GitHub Advisory Database Integration
- Add attack type fields to malware advisory templates
- Update OSV export format to include structured metadata
- Maintain API backward compatibility
Phase 3: Dependabot Logic Updates
- Implement selective alerting based on attack types
- Monitor false positive/negative rates
Technical Considerations
OSV Schema Compatibility
The OSV format explicitly supports this via database_specific fields:
"The database_specific field is a JSON object holding additional information... entirely defined by the database and beyond the scope of this document."
Precedent for Structured Metadata
GitHub already provides structured prioritization data:
- CVSS scores and severity ratings
- CWE identifiers
- EPSS scores for exploit likelihood
Attack type classification follows this established pattern.
Call to Action
Short-term: Begin classifying new malware reports with attack types
Medium-term: Implement Dependabot selective alerting
The recent chalk/debug and nx incidents demonstrate that the current system fails to protect developers from the most serious supply chain threats. This proposal provides a practical solution that balances security coverage with noise reduction.
External References:
- Langage dominant
- Aucune donnée de langage
- Étoiles
- 2.5k
- Forks
- 803
- Merge moyen
- 5 j 16 h
- PR mergées (30 j)
- 56
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de github/advisory-database
-
Update https://github.com/advisories/GHSA-5pf6-cq2v-23ww to include patched versionPeut-être pris @GreyforgeLabs l’a pris il y a 11 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
github/advisory-database#9879 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
github/advisory-database#9255 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
github/advisory-database#9164 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
CVE-2026-5598 has incorrect fixed versions for bcprov-jdk packagesPeut-être pris @ECD5A l’a pris il y a 54 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
github/advisory-database#8994 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
github/advisory-database#8898 · 4 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de github/advisory-database
Issues similaires
-
[BUG] Media route redirects to any absolute URL from the pathPeut-être pris @Senthil455 l’a pris aujourd’hui. OuverteBUGS URGENT
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
elixpo/blogs.elixpo#418 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
area: adapter help wanted question
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
scs0209/laya-guard#53 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour
-
documentation good first issue hacktoberfest help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
libredb/libredb-studio#1756 ·
Les mainteneurs répondent en général sous 1 jour
-
agent-ready Backend bug priority: medium security
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour