Skip to content

SingleApi

Internet, programming, artificial intelligence

Menu
  • Home
  • About
  • My Account
  • Registration
Menu

Axios 1.1.4 Vulnerability and My Development Sandbox

Posted on March 31, 2026

A security vulnerability in Axios 1.1.4 brought to my attention the issue of Ai installing itself on my sandbox, or what other people installs without my knowledge. Because the vulnerability in Axios is so serious, I had to do something. I don’t work with npm, in fact, I rarely do anything with it, but my coworkers do, and I have to trust that they’re maintaining dependencies. But trusting and verifying are two different things …

Jenkins OWASP Dependency-Check Integration

OWASP Dependency-Check is a Software Composition Analysis (SCA) tool that scans your project’s dependencies and identifies known publicly disclosed vulnerabilities. It works by analyzing JAR files, pom.xml, package.json, and other dependency manifests to extract library names and versions, then matches them against the NVD (National Vulnerability Database) maintained by NIST.

Each vulnerability is identified by a CVE identifier and scored on the CVSS scale from 0 to 10 — where 9.0+ is Critical. The tool generates detailed reports in multiple formats (HTML, JSON, XML, SARIF) showing which library is vulnerable, what the CVE describes, and whether a fix (newer version) is available.

It maintains a local H2 database cache of the NVD data. The first download takes 15–30 minutes (~238k records), but subsequent runs only fetch a small diff, making them fast. An NVD API key is strongly recommended — without it requests are heavily throttled.

The tool supports Java, .NET, Python, Ruby, and Node.js. For Java/Gradle it scans runtimeClasspath dependencies. It also integrates with Sonatype OSS Index and RetireJS for broader coverage, though both now require separate API tokens.

False positives do occur — the CPE matching algorithm sometimes maps a library to the wrong CVE. The tool supports a suppressions.xml file where you can document and exclude confirmed false positives from reports.

The Jenkins plugin acts as a publisher — it reads the XML report generated by the Gradle/Maven task and renders it inside Jenkins UI as a trend chart and findings list. It does not run the scan itself; the scan is handled by the Gradle plugin during the build step.

Goal: Integrate OWASP Dependency-Check into an existing Jenkins pipeline running inside a Docker container.

// build.gradle
plugins {
    id 'org.owasp.dependencycheck' version '12.1.0'  // 9.0.9 had API key bugs
}

dependencyCheck {
    data {
        // Persisted via Docker volume – survives container restarts
        directory = '/var/jenkins_home/dependency-check-data'
    }
    nvd {
        apiKey = System.getenv("NVD_API_KEY")
        delay = 30000
        maxRetryCount = 5
    }
    analyzers {
        ossIndex { enabled = false }  // requires token since Sept 2025
        nodeAudit { enabled = false } // breaks on package.json aliases
    }
    format = 'ALL'
    outputDirectory = 'build/reports/dependency-check'
    scanConfigurations = ['runtimeClasspath']
}
stage('Security Scan') {
    steps {
        withCredentials([string(credentialsId: 'nvd-api-key', variable: 'NVD_API_KEY')]) {
            withEnv(["NVD_API_KEY=${NVD_API_KEY}"]) {
                sh './gradlew dependencyCheckAnalyze --no-daemon'
            }
        }
    }
    post {
        always {
            dependencyCheckPublisher(
                pattern: '**/build/reports/dependency-check/dependency-check-report.xml'
            )
        }
        failure {
            slackSend(
                color: 'danger',
                message: "🔐 Security vulnerabilities found: ${env.JOB_NAME} #${env.BUILD_NUMBER}"
            )
        }
    }
}
  1. Manage Jenkins → Credentials → Add Credential
  2. Kind: Secret text
  3. ID: nvd-api-key
  4. Get key from: https://nvd.nist.gov/developers/request-an-api-key
  5. Install plugin in Jenkins OWASP Dependency-Check

Issues Encountered

dependencyCheckPublisher not found
→ Install the OWASP Dependency-Check Plugin in Jenkins UI: Manage Jenkins → Plugins → Available

Gradle Daemon not inheriting env variables from withCredentials
→ Wrap with withEnv to pass variables into the Daemon process

-PnvdApiKey=$NVD_API_KEY broken by shell & in URL
→ Switched to withEnv + System.getenv() in build.gradle instead of -P property

403 errors from NVD despite valid key
→ Jenkins runs in Docker; tested with curl from inside container – IP not blocked, key valid. Root cause was plugin version 9.0.9 having an API key bug. Fixed by upgrading to 12.1.0.

First run took ~22 minutes
→ Normal – NVD database has ~238k records. Subsequent runs take ~1 minute thanks to local cache at /var/jenkins_home/dependency-check-data.

TODO:

Add a separate weekly job to run dependencyCheckUpdate (keep DB fresh without slowing every build)

Recent Posts

  • Axios 1.1.4 Vulnerability and My Development Sandbox
  • Claude Code and Qwen3.5-Omni Drive Autonomous AI Workflows
  • Dreamina Seedance 2.0 and Claude Mythos AI Innovations
  • Anthropic Claude Mythos and Claude Code AI Breakthrough
  • TurboQuant Compression, Claude Agents, and LeWorldModel Robotics Advances

Recent Comments

  • adrian on Anthropic Launches Claude Cowork Powered by Claude Code for AI-Driven Workplace Task Automation and Agentic AI Development
  • adrian on Advancements in AI Foundation Models Agentic Frameworks and Robotics Integration Driving Next Generation AI Ecosystems
  • adrian on n8n DrawThings
  • adrian on Kokoro TTS Model, LLM Apps Curated List
  • adrian on Repo Prompt and Ollama

Archives

Categories

agents ai apple apps automation blender cheatsheet china claude codegen comfyui deepseek devsandbox docker draw things flux gemini gemini cli google hidream hobby huggingface java jenkins langchain langchain4j llama mcp meta n8n news nvidia ollama openai owasp personal thoughts rag release repo prompt spring stable diffusion tts vibe coding whisper work

Meta

  • Register
  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Terms & Policies

  • Comments Policy
  • Privacy Policy

Other websites: jreactor bottlenose dolphin

©2026 SingleApi | Design: Newspaperly WordPress Theme
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
Do not sell my personal information.
Cookie settingsACCEPT
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT