Plain-language definitions of the security terms, acronyms, and concepts your team should know.
An advanced persistent threat (APT) is a well-resourced, usually state-backed attacker that pursues a goal for months or years and adapts when blocked.
Agent skills are folders with a SKILL.md file and optional scripts that AI agents load on demand, running instructions and code with the user's permissions.
Agentic AI security controls what AI agents execute, including packages, MCP servers, and instructions, while they act with a developer's credentials.
The AGPL license is GPLv3 plus a network clause: if you modify AGPL code and users reach it over a network, you must offer them its source code.
An AI bill of materials (AIBOM) is a machine-readable inventory of the models, datasets, and libraries an AI system uses, including each model's lineage.
AI-generated code security (AI code security) checks the code, version pins, and package names that LLMs write before they run.
AMSI is a Windows interface that integrates applications with anti-malware products, enabling real-time scanning of scripts for malicious activities.
The Apache License 2.0 is a permissive open source license with an explicit patent grant; redistributors must keep its license text and NOTICE file.
An API token is a secret string sent with each API request to prove identity and authority. Anyone who holds the token can use it.
Application security refers to the measures and practices taken to protect software applications from unauthorized access, vulnerabilities, and potential threats.
Application Security Testing assesses software for vulnerabilities, ensuring protection against cyber threats.
An artifact repository stores and serves packages and build outputs, usually as a caching proxy in front of public registries like npm and PyPI.
An attack surface is the sum of potential vulnerabilities that can be exploited by unauthorized users to infiltrate a system or network.
Automated dependency updates are bots like Dependabot and Renovate that open pull requests bumping your dependencies to newer versions on a schedule.
A backdoor is hidden code or access that bypasses normal authentication, giving an attacker covert, repeatable control of a system.
Behavior-based security detects threats by what code, users, or devices actually do, such as spawning shells or reading secrets, not by known signatures.
A breaking change is an update to a library, API, or runtime that makes previously working dependent code fail to build, crash, or behave differently.
Browser extension security is controlling what Chrome, Firefox, and Edge extensions can access and verifying what each auto-updated version actually does.
The BSD license is a family of permissive open source licenses that allow any use, including closed-source, and most require keeping the copyright notice.
Buffer Overflow is a flaw where excessive data written into a buffer can overflow it, leading to code execution or system crash scenarios.
A bug bounty program pays outside researchers for valid security vulnerability reports in a published scope, under set payout and disclosure rules.
A build system compiles and links source code into executable software, automating processes for consistency and efficiency in software development.
The Bun package manager (bun install) is an npm-registry client built into Bun that skips dependency install scripts unless the package is trusted.
A bundler is a tool that combines and optimizes multiple web development files and dependencies into fewer, streamlined output files for efficient loading.
A changelog is a chronological record detailing notable changes made to software, aiding in transparency, trust, and security.
CI/CD security protects build and release pipelines from running attacker code with the pipeline's own tokens, secrets, and publishing rights.
CISA KEV is the U.S. government's catalog of CVEs with confirmed exploitation in the wild, each with a federal remediation due date under BOD 26-04.
Code Injection is a security vulnerability that allows attackers to introduce malicious code into a program, altering its execution.
Code obfuscation rewrites a program to behave identically but resist reading. In open source packages it is a strong signal of hidden malware.
Code Review is the systematic examination of source code for error detection and improvement of coding practices.
Code signing attaches a cryptographic signature to software so users can verify who released it and that the bytes are unchanged, not that it is safe.
Command and control (C2) is the channel malware uses to receive an attacker's instructions and send stolen data back from a compromised system.
The Common Security Advisory Framework (CSAF) 2.0 is a standardized method for disclosing and communicating security vulnerabilities consistently.
CVE (Common Vulnerabilities and Exposures) is the global naming system for disclosed software vulnerabilities: one ID and one public record per flaw.
CVSS is FIRST's open standard that turns a vulnerability's attack conditions and impact into a 0.0 to 10.0 severity score. It measures severity, not risk.
CWE is a community-developed list of common software and hardware weakness types, used to identify and mitigate vulnerabilities.
Compliance refers to ensuring the software components and dependencies adhere to legal and regulatory standards.
Container Security ensures the integrity of containerized applications, safeguarding them from vulnerabilities and threats.
A Content Security Policy (CSP) is a security feature that helps to prevent malicious attacks, such as cross-site scripting (XSS) and data injection attacks.
Continuous Deployment is a strategy that automates the delivery of software changes to production after passing a series of automated tests.
Continuous Integration is a dev practice where developers merge code changes frequently to detect integration issues early and ensure code quality.
A copyleft license lets anyone use, modify, and share code, on the condition that distributed copies and derivatives keep the same license and source.
crates.io is Rust's default package registry, where Cargo fetches crates whose build scripts and procedural macros run code when you compile.
Cross-site scripting (XSS) is a flaw where a page renders attacker-controlled data as code, running the attacker's JavaScript in the victim's browser.
Cyber supply chain risk management (C-SCRM) manages the cybersecurity risk in the products, services, and code an organization acquires.
CISA is the U.S. agency that leads federal civilian cyber defense, issues binding directives to agencies, runs the KEV catalog, and funds the CVE program.
CycloneDX is the OWASP and Ecma (ECMA-424) bill of materials standard for listing software components, dependencies, and vulnerability data in JSON or XML.
Denial of Service (DoS) is an attack aiming to make a system or network resource unavailable to its intended users, disrupting services.
Dependency confusion is an attack where a package manager installs an attacker's public package in place of a same-named private one.
A dependency cooldown makes a package manager skip versions published less than a set time ago, giving malicious releases time to be caught and removed.
A dependency graph is a directed graph of the packages a project resolves and the requirements between them, the basis of dependency mapping.
Dependency hell is when a project's version constraints conflict, so updating one package breaks another and security fixes can't reach the build.
Dependency management is how a project chooses, versions, locks, updates, and removes the packages it depends on, and decides what may install and run.
A dependency override forces the package manager to install a version you choose for a transitive dependency, as npm overrides and Yarn resolutions do.
DevSecOps builds security into the CI/CD pipeline: checks run as automated jobs on every change, and a failing check blocks the merge or deploy.
Docker is a platform that builds, ships, and runs software as containers: isolated Linux processes started from layered, content-addressed images.
DAST (dynamic application security testing) finds flaws in a running app by sending it hostile HTTP requests and reading the responses, without source code.
An end-of-life dependency is end of life software your code relies on: a package or runtime that will ship no more releases, including security fixes.
Environment variables are strings a process inherits at launch. For environment variables security, assume every dependency in that process can read them.
The EU Cyber Resilience Act (CRA) holds manufacturers of software sold in the EU responsible for its security, open source dependencies included.
In cyber security, an exploit is code, data, or input that triggers a vulnerability to make software behave in a way its authors never intended.
Exploit Prediction Scoring System (EPSS) forecasts the likelihood of a vulnerability being exploited, enabling proactive cybersecurity measures.
Git is a distributed version control system that names every file and commit by its hash, which proves content but not who wrote it.
Git and URL dependencies in npm point a package at a Git repo or tarball URL instead of a registry version, so its code is fetched live at install.
GitHub is a Git hosting and CI platform whose accounts, tokens, tags, and workflows decide what gets built and published across open source.
GitHub Actions security controls which code a workflow runs and what it can reach, so untrusted inputs and actions never act with a repo's token or secrets.
The GitHub Advisory Database is GitHub's open catalog of vulnerability and malware advisories for open source packages, keyed by GHSA IDs in OSV format.
Go modules are Go's dependency system: versioned packages named by repository paths, declared in go.mod and verified against go.sum and a public checksum log.
The GPL license is a strong copyleft license: use, modify, and sell freely, but distributing GPL code means releasing the whole program's source under the GPL.
IDE extension security covers the risk of VS Code and Open VSX extensions, which run unsandboxed with the user's privileges and are targeted by GlassWorm.
Incident response is how teams detect, contain, eradicate, and recover from a security incident, such as a compromised open source dependency.
Indicators of compromise (IoCs) are observable artifacts, like hashes, domains, and malicious package versions, that show a system was attacked.
An infostealer is malware that copies secrets a machine can reach, like passwords, session cookies, and cloud or registry tokens, and sends them to an attacker.
An install script is code a package manager runs automatically while installing a package, such as an npm postinstall script or a Python setup.py.
IAST is a testing method combining static and dynamic analysis, analyzing applications during runtime for vulnerabilities and code errors.
The Least Privilege Principle advocates granting minimum necessary access to users, programs, or processes for security purposes.
Open source license compliance is meeting the conditions licenses attach to using, modifying, and distributing the code you depend on.
A lockfile records the exact version, source, and hash of every resolved dependency, so later installs replay the same tree instead of resolving again.
An open source maintainer is a person with authority to merge changes, cut releases, and publish a project's packages that every user then installs.
Maintainer account takeover is when an attacker gains a package maintainer's registry access and publishes malicious versions under the trusted name.
A malicious package is a registry library containing malicious code that steals data, opens a backdoor, or destroys files when installed, built, or imported.
Malware is software built to act against the person or system running it, by stealing data, taking control, encrypting files, or hijacking compute.
Malware detection is deciding whether code acts against its user, using signatures, static analysis, behavioral signals, AI review, and sandboxing.
Manifest confusion is a mismatch between an npm package's registry manifest and the package.json in its tarball, two copies that tools trust inconsistently.
Maven Central is the default public repository for Java and JVM libraries, serving immutable, signed releases that Maven and Gradle download by coordinates.
MCP security is controlling what Model Context Protocol servers can do: the code they run on your machine and the tool descriptions AI models obey.
Minification rewrites code into the smallest equivalent text. In npm packages, minified files escape review and are a common place to hide malware.
The MIT License is a permissive open source license that allows any use, including commercial use, if the copyright and permission notice stay with every copy.
MITRE ATT&CK is a public knowledge base that catalogs adversary tactics and techniques, observed in real attacks, under stable IDs such as T1195.001.
Multi-factor authentication (MFA) is a login check that requires two or more independent factors, so a stolen password alone cannot open an account.
NIST is the U.S. agency behind the Cybersecurity Framework, SP 800-53, the SSDF, and FIPS, and the operator of the National Vulnerability Database.
The NVD is NIST's public database of CVE records, enriched with CVSS scores, CWE types, and CPE product matches, now for a prioritized subset of CVEs.
Native code is compiled machine code in a package, such as a Node.js addon built by node-gyp or a prebuilt binary, that source review cannot read.
The NIST SSDF (SP 800-218) is NIST's set of outcome-based secure software development practices and tasks, grouped into PO, PS, PW, and RV.
node_modules is the directory where npm, pnpm, and Bun unpack a project's dependencies, which Node.js searches by walking up parent folders.
Node.js is an open-source, cross-platform JavaScript runtime environment used to develop scalable network applications.
npm is the default package manager for Node.js: a CLI that installs packages from the public npm registry, which GitHub operates.
npm audit is the npm CLI command that checks a project's lockfile against GitHub advisories and reports dependencies with known vulnerabilities or malware.
The npm registry is the public database at registry.npmjs.org that stores every npm package's metadata and tarballs and serves them to package managers.
npm security is the practice of keeping vulnerable and malicious npm packages out of JavaScript projects, from publish through install and runtime.
npm trusted publishing lets a CI job publish a package by exchanging its OIDC identity token for a short-lived registry token, with no stored npm secret.
npm-shrinkwrap.json is the publishable lockfile from npm shrinkwrap. npm 11 and earlier installed its pinned tree for consumers; npm v12 ignores it.
npx is npm's package runner: it executes a package's bin, first installing it from the registry into a cache when no local copy exists.
NuGet is the package manager for .NET that distributes C# libraries as .nupkg archives through the nuget.org registry and restores them in a build.
OAuth is the IETF authorization framework that lets an app act on your account with a scoped access token instead of your password.
An open source program office (OSPO) is the team that sets and enforces how an organization uses, contributes to, and releases open source software.
Open source security is managing the risk in third-party open source code: vulnerabilities, malicious packages, license obligations, and maintainer health.
OWASP Dependency-Check is a tool that identifies known vulnerabilities in a project's dependencies.
OWASP is a nonprofit open community that publishes free application security standards and tools, including the OWASP Top 10, ASVS, and CycloneDX.
OpenID Connect (OIDC) is an identity layer on OAuth 2.0 in which a provider issues a signed ID token stating who authenticated, for which app, and until when.
OpenSSF Scorecard is an automated tool that grades a source repository's security practices using 18 risk-weighted checks, such as branch protection.
OSV is an open format and database, OSV.dev, that records which open source package versions a vulnerability or malicious release affects.
The OWASP Top 10 is OWASP's ranked awareness list of the ten most critical web application security risk categories, revised every few years.
A package firewall is a proxy between package managers and registries that blocks malicious or policy-violating package downloads before they reach disk.
A package manager resolves, downloads, verifies, and installs software dependencies from a registry, and decides when their code first runs.
Package provenance is a signed record of the repository, commit, and CI workflow that built a package file. npm provenance and PyPI attestations implement it.
Package risk assessment answers "is this npm package safe?" by checking one version's code, install behavior, publisher, and dependencies before install.
package-lock.json is npm's lockfile: it records the exact version, tarball URL, and SHA-512 hash of every installed package so installs are reproducible.
package.json is the JSON manifest of every npm package and Node.js project, declaring its name, dependency version ranges, and install-time scripts.
Packagist is Composer's default PHP package repository: an index of metadata read from Git repositories, with code served as archives from the Git host.
Patch management is the process of regularly updating and applying software patches to fix vulnerabilities and enhance security.
In cyber security, a payload is the part of an attack that does the damage, like stealing secrets or opening a backdoor, once something else runs it.
A permissive license lets anyone use, modify, and redistribute code, even in closed-source products, usually requiring only that its notice be kept.
Phantom dependencies are packages your code uses without declaring them in its manifest, such as a transitive npm package hoisted into node_modules.
Phishing is an impersonation attack that tricks a person into entering credentials, approving a login, or running attacker code.
pip is Python's default package installer. It downloads packages from PyPI or another index and can run their code at build, startup, or import time.
pnpm is an npm-compatible JavaScript package manager that hard-links packages from a global store and blocks dependency install scripts by default.
Poetry is a Python dependency manager and packaging tool that locks pyproject.toml dependencies into a hashed poetry.lock, then builds and publishes packages.
Policy as Code (PaC) is the practice of writing and enforcing IT and security policies as code, ensuring consistent and automated compliance.
Prompt injection is an attack where text an AI model reads as data, such as a README, tool description, or skill file, is obeyed as instructions.
Protestware is open source code its own maintainer changes to make a political or social statement, from install-time messages to geo-targeted file wipers.
Prototype pollution is a JavaScript vulnerability where attacker-controlled keys like __proto__ modify Object.prototype, changing every object in the process.
A pull request (PR) is a proposal to change a codebase, offering a platform for collaborative review, ensuring code quality and security.
PyPI is the Python Package Index, the PSF-run public registry that pip, uv, and other installers download Python packages from by default.
Python supply chain security keeps PyPI malware and vulnerable packages out of Python environments, from sdist builds to .pth startup hooks and imports.
A Python virtual environment is a directory with its own site-packages and pyvenv.cfg that isolates dependency versions. It does not sandbox code.
A Python wheel is a prebuilt .whl ZIP archive that pip unpacks into site-packages without running package code at install time.
Reachability analysis checks whether an application can execute the vulnerable function behind a dependency CVE, so triage targets real exposure.
A README is the file at a project's root that explains what it does and how to install it, rendered by code hosts and registries as its front page.
A remote access trojan (RAT) is malware disguised as legitimate software that gives an attacker persistent, interactive control of the machine running it.
Remote Code Execution (RCE) is a vulnerability that allows an attacker to execute arbitrary commands or code on a victim's system remotely.
Repojacking is a supply chain attack where someone registers a renamed or deleted GitHub owner name and recreates a repository that old references still fetch.
A repository is a versioned store of a project's files and full history; in Git, a content-addressed object database plus mutable refs.
requirements.txt is pip's requirements file: a list of Python packages to install, plus pip options that can change where and how they install.
Responsible Disclosure is a process where vulnerabilities found in software are privately reported to the vendor before public release.
RubyGems is Ruby's package manager and the gem command that installs gems from RubyGems.org, where installing a gem can execute code.
RASP is security instrumentation inside an application's runtime that hooks sensitive operations and blocks attacks as the code executes.
A sandbox environment is an isolated space that runs code with restricted access to files, network, and credentials, so its effects stay contained.
Secret scanning finds API keys, tokens, and private keys in code, git history, logs, and packages so they can be revoked before attackers use them.
Secrets management stores, delivers, rotates, and revokes the credentials software uses, such as API keys, tokens, passwords, and SSH keys, outside the code.
Secure Coding Practices involve guidelines and procedures to prevent the introduction of security vulnerabilities during software development.
The Secure Software Development Lifecycle (SSDLC) integrates security best practices into every phase of software development, from inception to decommissioning.
A security advisory is a published record that specific package versions are vulnerable or malicious, naming affected versions, the fix, and severity.
Security by Design is a proactive approach to software development where security is integral from the design phase, not an afterthought.
Security Headers are HTTP response headers that, when configured properly, can enhance the security of a web application against attacks.
Security Information and Event Management (SIEM) is a set of tools for managing, analyzing, and reporting on security event data in real-time.
Semantic versioning (SemVer) numbers releases MAJOR.MINOR.PATCH, so each bump signals a breaking change, a new feature, or a fix that ranges auto-install.
SSRF is a vulnerability that lets attackers manipulate server requests to access unauthorized resources.
setup.py scripts are executable Python build files for setuptools that run arbitrary code whenever a package's source distribution is built or installed.
setuptools is the default Python build backend: it turns source into sdists and wheels, executing setup.py and setuptools plugins during every build.
Shai-Hulud is a self-propagating npm worm that steals maintainer credentials at install time and republishes itself into the victims' other packages.
Shift left security moves security testing earlier in the development lifecycle, into the IDE, pull request, and CI, so flaws are caught while code is written.
Sigstore signs software with short-lived certificates tied to an OIDC identity and logs every signature in the public Rekor transparency log.
Slopsquatting is registering a package name that AI coding tools hallucinate, so developers or agents who follow the AI's advice install attacker code.
SLSA is an OpenSSF framework that grades how hard it is to tamper with a software artifact between its source code and its release.
A software bill of materials (SBOM) is a machine-readable inventory of the components, versions, and dependency relationships inside a piece of software.
Software composition analysis (SCA) inventories the third-party code in an application and checks each component for vulnerabilities, licenses, and malware.
Software dependencies are packages written by others that your code needs to build or run, declared in a manifest and installed by a package manager.
The SDLC is the sequence of phases, from planning to maintenance, that a team uses to build, ship, and change software, with a review gate after each.
A software supply chain is every source, dependency, tool, build system, registry, and account that code passes through between its authors and production.
Software supply chain security verifies that the dependencies, tools, builds, and registries your software relies on are authentic and safe before they run.
A software vulnerability is an unintended flaw in code or configuration that an attacker can exploit to break confidentiality, integrity, or availability.
SPDX is the Linux Foundation standard (ISO/IEC 5962) that names software licenses with short IDs like MIT and defines a document format for SBOMs.
SQL injection is a vulnerability where untrusted input is parsed as SQL code, letting an attacker read or change data the app never meant to expose.
Stakeholder-Specific Vulnerability Categorization classifies software vulnerabilities based on the risks they pose to different stakeholders.
SARIF is the OASIS-standard JSON format that code analysis and security tools use to report findings, with rules, file locations, and fingerprints.
SAST analyzes source code, bytecode, or binaries for security flaws without running the program, by matching patterns and tracing untrusted data to sinks.
Sub-resource Integrity (SRI) is a browser feature ensuring web assets like JavaScript & CSS haven't been tampered with, using cryptographic hashes.
A supply chain attack compromises a trusted supplier, like a package, build pipeline, or update server, so its own channel delivers malicious code to users.
Third-Party Risk Management is the process of identifying and mitigating risks associated with outsourcing to third-party vendors.
Threat intelligence is the collection and analysis of information about potential digital threats to predict and counteract cyberattacks.
Threat modeling is a process of identifying, evaluating, and prioritizing potential threats to a system or organization's security in order to implement effective safeguards.
A transitive dependency is a package your project pulls in indirectly, because one of your dependencies (or theirs) requires it.
twine is the PyPA command-line tool that uploads built Python packages to PyPI, authenticating with an API token or a short-lived Trusted Publishing token.
Two-Person Integrity (TPI) is a security measure requiring dual approval for critical actions to prevent unauthorized or harmful changes.
Typosquatting registers a lookalike domain or package name, one typo from a trusted one, so mistakes install or load attacker-controlled code.
Version control is a system that tracks changes to files over time, enabling specific versions to be recalled later.
Vulnerability Exploitability eXchange (VEX) is a machine-readable statement of whether a known vulnerability affects a specific product, and why.
Vulnerability Management is the proactive process of identifying, assessing, prioritizing, and mitigating security vulnerabilities in a system or network.
Vulnerability prioritization ranks vulnerabilities by the risk each poses in your system, using reachability, exploitation, EPSS, and CVSS, not severity alone.
Vulnerability scanning is the automated matching of the software you run against databases of known vulnerabilities such as CVE, the NVD, and OSV.