Security Encyclopedia

250 vulnerabilities explained for developers. Definitions, code examples, and how to fix them.

All Categories

OWASP Web Top 10

The 10 most critical security risks for web applications, defined by the Open Web Application Security Project. These are the vulnerabilities attackers exploit most often.

10 vulnerabilities

OWASP Mobile Top 10

The 10 most common security risks in mobile applications. Covers React Native, Expo, Flutter, and native iOS/Android apps.

10 vulnerabilities

OWASP API Top 10

The 10 most critical API security risks. If your app has an API (and it probably does), these are the vulnerabilities you need to check first.

10 vulnerabilities

Supabase Security

Security checks specific to Supabase projects. Row Level Security, service role keys, storage policies, and RPC functions.

8 vulnerabilities

Firebase Security

Security checks for Firebase projects. Firestore rules, Realtime Database, Storage, Authentication, and Cloud Functions.

7 vulnerabilities

React & Next.js

Security vulnerabilities specific to React and Next.js applications. XSS via dangerouslySetInnerHTML, token storage, source maps, CORS, and middleware issues.

7 vulnerabilities

Vibecoding Patterns

Security mistakes commonly found in AI-generated code from tools like Cursor, Copilot, and Claude. The code works, but it's often insecure.

10 vulnerabilities

Headers & Infrastructure

HTTP security headers and infrastructure configuration. CSP, HSTS, cookie flags, SSL/TLS — the basics that many deployed apps are missing.

8 vulnerabilities

Injections (Advanced)

Beyond SQL injection — LDAP, XXE, CRLF, email header, log, and template injection attacks. Different vectors, same principle: untrusted input in trusted contexts.

6 vulnerabilities

Auth & Sessions (Advanced)

Session fixation, account lockout, OAuth state, password reset, and token invalidation vulnerabilities. The details that make or break your auth system.

9 vulnerabilities

Frontend & Browser

Client-side vulnerabilities — DOM XSS, stored XSS, PostMessage, clickjacking, iframes, SRI, open redirects, and sensitive data in URLs.

8 vulnerabilities

APIs (Advanced)

GraphQL introspection, query depth attacks, batching, excessive data exposure, missing pagination, and overly broad API keys.

7 vulnerabilities

Database Security

Connection strings exposed, database backups in repos, raw ORM queries, unsafe deserialization, and N+1 query exploitation.

5 vulnerabilities

Files & Media

Path traversal, file upload validation, SVG JavaScript injection, EXIF data leaks, PDF generation attacks, Zip Slip, and MIME type mismatches.

7 vulnerabilities

Race Conditions & Logic

Payment race conditions, price manipulation, exposed feature flags, debug routes, privilege escalation, timing attacks, open redirects, and mass assignment.

8 vulnerabilities

Cryptography

ECB mode, static IVs, weak key sizes, disabled certificate validation, weak PRNGs, JWT algorithm none attack, and hardcoded encryption keys.

7 vulnerabilities

JavaScript & Node.js

Prototype pollution, ReDoS, insecure randomness, and malicious service workers — JavaScript-specific vulnerabilities.

4 vulnerabilities

Serverless & Cloud

Function timeout abuse, over-privileged roles, env vars in logs, shared /tmp state, and cold start state leaks in serverless environments.

5 vulnerabilities

Supply Chain

Typosquatting, abandoned packages, malicious install scripts, dependency confusion, and missing lockfiles — attacks through your dependencies.

5 vulnerabilities

Mobile Security (Advanced)

Deep link hijacking, clipboard exposure, screenshot prevention, certificate pinning, root/jailbreak detection, and biometric bypass.

6 vulnerabilities

Docker & Containers

Running as root, latest tags, secrets in Dockerfiles, unnecessary exposed ports, and missing health checks in containerized apps.

5 vulnerabilities

Email & Communications

Email spoofing via missing SPF/DKIM/DMARC, SMS injection, and push notification injection vulnerabilities.

3 vulnerabilities

Auth Best Practices

Password policies, login rate limiting, MFA/2FA, email verification, password reset expiry, logout everywhere, and critical action confirmation.

9 vulnerabilities

Project Config Best Practices

.env.example, security linting, git hooks, .gitignore, npm scripts security, lockfiles, and test data management.

7 vulnerabilities

Error & Logging Best Practices

Sensitive data in console.log, stack traces exposed to users, React error boundaries, security logging, and PII in logs.

5 vulnerabilities

Deployment Best Practices

NODE_ENV, debug mode, health check endpoints, error monitoring, dev environment variables in production, backup policies, and session timeouts.

7 vulnerabilities

Privacy Best Practices

Privacy policy, terms of service, account deletion, cookie consent, payment data storage, tracking consent, data minimization, and activity display.

8 vulnerabilities

Communication Best Practices

Sensitive data in emails, rate limiting on email/SMS sending, and sensitive data in push notifications.

3 vulnerabilities

Resource & Size Limits

File size limits, request body limits, global rate limiting, request timeouts, and WebSocket authentication.

5 vulnerabilities

AI & LLM Security

Prompt injection, PII leakage to AI models, unvalidated AI responses, API keys in frontend, output sanitization, and AI rate limiting.

9 vulnerabilities

Database Connections

Unencrypted connections, publicly accessible databases, default credentials, inline passwords, MongoDB/Redis/Elasticsearch without auth, pool limits, and SSL validation.

12 vulnerabilities

Cloud Provider Security

AWS, GCP, and Azure specific vulnerabilities — S3 buckets, metadata SSRF, hardcoded credentials, IAM policies, cloud functions, KMS, VPC rules, and resource tagging.

12 vulnerabilities

Infrastructure as Code

Terraform state files, hardcoded provider credentials, Kubernetes privileged containers, Helm secrets, network policies, and drift detection.

8 vulnerabilities

CI/CD Pipeline Security

Unpinned GitHub Actions, script injection, secrets in CI logs, self-hosted runner risks, workflow permissions, branch protection, and artifact tampering.

8 vulnerabilities

WebSocket & Real-time

WebSocket origin validation and message rate limiting — security for real-time communication channels.

2 vulnerabilities

250 vulnerabilities

Broken Access Control

high

Users can act outside their intended permissions, accessing other users' data or admin functionality without proper authorization checks.

CWE-284A01:2021

Cryptographic Failures

high

Sensitive data is exposed due to weak or missing encryption — using outdated algorithms like MD5/SHA1, storing passwords in plaintext, or transmitting data without TLS.

CWE-327A02:2021

Supply Chain Failures

medium

Your application inherits vulnerabilities from third-party dependencies — outdated packages with known CVEs that attackers actively exploit.

CWE-1395A06:2021

Security Misconfiguration

medium

Default configurations, open CORS policies, debug mode in production, or verbose error messages expose your application to attackers.

CWE-16A05:2021

Injection (SQL, NoSQL, Command)

critical

Attacker inserts malicious code into queries or commands by exploiting unsanitized user input — SQL injection, NoSQL injection, and OS command injection.

CWE-89A03:2021

Insecure Design

medium

The application's architecture has fundamental security flaws — business logic on the client side, missing server-side validation, or no threat modeling.

CWE-840A04:2021

Authentication Failures

high

Weak authentication mechanisms allow attackers to compromise passwords, keys, or session tokens — JWT without expiration, tokens stored in localStorage, or missing MFA.

CWE-287A07:2021

Data Integrity Failures

medium

Applications that don't verify the integrity of data, software updates, or CI/CD pipelines are vulnerable to tampering — insecure deserialization and unsigned updates.

CWE-502A08:2021

Security Logging Failures

low

Missing or insufficient logging of security events like failed logins, access violations, and data changes makes it impossible to detect and respond to attacks.

CWE-778A09:2021

Server-Side Request Forgery (SSRF)

high

Attacker tricks the server into making requests to internal resources — accessing cloud metadata, internal APIs, or services that should not be publicly reachable.

CWE-918A10:2021

Improper Credential Usage

critical

Hardcoded API keys, passwords, or tokens directly in mobile app source code — easily extracted by decompiling the app bundle.

CWE-798M1:2024

Mobile Supply Chain Security

medium

Vulnerable SDKs, outdated native libraries, or compromised third-party modules in your mobile app introduce security risks from your dependencies.

CWE-1395M2:2024

Insecure Authentication/Authorization

high

Mobile apps with weak authentication — storing sessions insecurely, missing token refresh, or authorization checks only on the client side.

CWE-287M3:2024

Insufficient Input/Output Validation

medium

Mobile apps that don't validate user input or sanitize output are vulnerable to injection attacks, data corruption, and unexpected behavior.

CWE-20M4:2024

Insecure Communication

high

Mobile app transmits sensitive data over HTTP instead of HTTPS, or accepts invalid SSL certificates — enabling man-in-the-middle attacks on public WiFi.

CWE-319M5:2024

Inadequate Privacy Controls

medium

Mobile app collects, stores, or transmits personally identifiable information (PII) without proper consent, encryption, or data minimization practices.

CWE-359M6:2024

Insufficient Binary Protections

low

Mobile app lacks code obfuscation, anti-tampering, or anti-debugging protections — making it easy to reverse engineer, modify, and redistribute.

CWE-693M7:2024

Security Misconfiguration (Mobile)

medium

Mobile app ships with debug mode enabled, excessive permissions, exported activities, or backup allowed — exposing data and functionality to other apps.

CWE-16M8:2024

Insecure Data Storage

high

Sensitive data like tokens, passwords, or personal information stored in plaintext on the device — in AsyncStorage, SharedPreferences, or local databases without encryption.

CWE-312M9:2024

Insufficient Cryptography

medium

Mobile app uses weak encryption algorithms, hardcoded keys, or implements custom cryptography — making encrypted data effectively unprotected.

CWE-327M10:2024

Broken Object Level Authorization (BOLA)

high

API endpoints don't verify that the requesting user owns the resource they're accessing — allowing attackers to access other users' data by changing object IDs.

CWE-639API1:2023

Broken Authentication (API)

high

API authentication mechanisms are weak or improperly implemented — JWT without proper validation, tokens not in httpOnly cookies, or missing token expiration.

CWE-287API2:2023

Broken Object Property Level Authorization

medium

API allows users to read or modify object properties they shouldn't have access to — mass assignment, excessive data exposure, or missing field-level access control.

CWE-915API3:2023

Unrestricted Resource Consumption

medium

API endpoints without rate limiting, pagination, or resource limits — allowing attackers to exhaust server resources, rack up costs, or extract large datasets.

CWE-770API4:2023

Broken Function Level Authorization

high

Admin or privileged API endpoints accessible to regular users — missing role checks allow privilege escalation to administrative functions.

CWE-285API5:2023

Unrestricted Sensitive Flows

medium

Business-critical flows like registration, password reset, or purchase lack bot protection such as CAPTCHA, rate limiting, or device fingerprinting.

CWE-799API6:2023

Server-Side Request Forgery (SSRF) in API

high

The API fetches a URL provided by the user without validation, allowing attackers to probe internal services, cloud metadata endpoints, or private networks.

CWE-918API7:2023

Security Misconfiguration (API)

medium

APIs expose excessive information through open CORS policies, verbose error messages, missing security headers, or default configurations that were never hardened.

CWE-16API8:2023

Improper Inventory Management

low

Multiple API versions remain active without documentation or deprecation, leaving old endpoints with known vulnerabilities accessible to attackers.

CWE-1059API9:2023

Unsafe API Consumption

medium

Your API blindly trusts responses from third-party APIs without validation, allowing attackers to exploit upstream services to compromise your application.

CWE-20API10:2023

Row Level Security Disabled

critical

Supabase tables without RLS enabled allow any authenticated or anonymous user to read, insert, update, and delete all rows using the client library.

CWE-862

RLS Policy with USING(true)

critical

RLS policies that use USING(true) or WITH CHECK(true) effectively disable row-level security by allowing all operations for all users.

CWE-862

RLS Enabled Without Policies

high

RLS is enabled on a table but no policies are defined, which silently blocks all access including legitimate queries from your application.

CWE-862

Service Role Key Exposed

critical

The Supabase service_role key is hardcoded in frontend code, committed to a repository, or exposed in client bundles, granting full database admin access to anyone.

CWE-798

Public Storage Buckets

medium

Supabase storage buckets with overly permissive policies allow any user to upload, read, or delete files including other users' private documents and images.

CWE-732

RPC Functions Without Authentication

high

Supabase database functions (RPC) callable from the client without checking auth.uid(), allowing anonymous users to execute privileged operations.

CWE-862

Anon Key with Excessive Permissions

medium

The anon database role has been granted permissions on too many tables, expanding the attack surface for anyone with the publicly available anon key.

CWE-269

Database Migrations Not in Repository

low

Database schema changes are applied manually through the Supabase Dashboard instead of tracked migration files, making security audits and rollbacks impossible.

CWE-1127

Firestore Rules Allow Read/Write True

critical

Firestore security rules set to 'allow read, write: if true' give any user — authenticated or not — full access to read, create, modify, and delete all documents.

CWE-862

Realtime Database Without Authentication

critical

Firebase Realtime Database rules set '.read: true' and '.write: true' at the root level, allowing anyone on the internet to read and modify all data.

CWE-862

Firebase Storage Rules Permissive

high

Firebase Cloud Storage rules allow any user to read, write, or delete files without authentication, exposing uploaded content and enabling file tampering.

CWE-732

Cascading Rules Misconfigured

high

Parent-level Firebase rules override restrictive child rules, unintentionally granting broader access than intended to nested collections and documents.

CWE-863

Firebase API Key Exposed in Code

medium

Firebase configuration (apiKey, projectId, databaseURL) is hardcoded in JavaScript bundles and publicly accessible, enabling attackers to interact with your Firebase services.

CWE-798

Firebase Auth Without Restrictions

medium

Firebase Authentication allows sign-up without email verification, enabling attackers to create unlimited accounts and abuse authenticated-only features.

CWE-287

Cloud Functions Without Validation

high

Firebase Cloud Functions exposed as HTTP endpoints accept and process requests without verifying authentication tokens or validating input data.

CWE-862

dangerouslySetInnerHTML Without Sanitization

high

Using React's dangerouslySetInnerHTML with unsanitized user input allows attackers to inject malicious scripts that execute in other users' browsers.

CWE-79A03:2021

Authentication Tokens in localStorage

high

Storing JWT tokens, session tokens, or API keys in localStorage makes them accessible to any JavaScript running on the page, including XSS payloads.

CWE-922A07:2021

__NEXT_DATA__ Secrets Exposure

high

Next.js page props passed through getServerSideProps or getStaticProps leak sensitive data like API keys, database URLs, or internal configuration via the __NEXT_DATA__ script tag.

CWE-200A01:2021

Source Maps Exposed in Production

medium

JavaScript source map files (.map) are publicly accessible in production, revealing the complete original source code including comments, variable names, and internal logic.

CWE-540A05:2021

Open CORS in Next.js API Routes

medium

Next.js API routes configured with Access-Control-Allow-Origin: * allow any website to make authenticated cross-origin requests, enabling CSRF-like attacks.

CWE-942A05:2021

No CSRF on Server Actions

medium

Server Actions called from malicious third-party sites without origin validation, letting attackers trigger state-changing requests on behalf of logged-in users.

CWE-352A01:2021

Next.js Middleware Bypass (CVE-2025-29927)

critical

A critical vulnerability in Next.js versions before 15.2.3 allows attackers to bypass middleware-based auth checks entirely by sending a crafted internal header.

CWE-863A01:2021

Hardcoded API Keys

critical

API keys, tokens, or secrets written directly in source code, making them visible to anyone with repo access — including public GitHub repositories.

CWE-798A02:2021

No Input Validation

medium

User-supplied data sent directly to databases or external APIs without any type, format, or content validation.

CWE-20A03:2021

Passwords Stored in Plaintext

critical

User passwords stored as raw strings in the database instead of being hashed with a proper algorithm like bcrypt or Argon2.

CWE-256A02:2021

JWT Without Expiration

high

JWTs signed without an `exp` claim that never expire, meaning a stolen token grants permanent access with no way to revoke it.

CWE-613A07:2021

Auth Logic in Frontend Only

high

Showing or hiding UI elements based on user role in React, without any server-side enforcement — easily bypassed by anyone who opens DevTools.

CWE-602A01:2021

Endpoints Without Authentication

high

API routes that perform sensitive operations — reading user data, modifying records, deleting resources — with no session or token verification.

CWE-306A01:2021

Verbose Error Messages

medium

Detailed error messages, stack traces, or internal paths sent to the client or logged publicly, giving attackers a map of your application internals.

CWE-209A05:2021

Outdated Dependencies with Known CVEs

medium

npm packages or other dependencies with published security vulnerabilities (CVEs) that haven't been updated, leaving known attack vectors open in your app.

CWE-1104A06:2021

eval() with User Input

critical

Passing user-controlled data to eval(), new Function(), or similar dynamic code execution functions, enabling arbitrary code execution on your server.

CWE-94A03:2021

Secrets in Committed .env Files

critical

A .env file containing real credentials committed to git, making all secrets permanently accessible to anyone with repo access — including through git history.

CWE-540A02:2021

Missing Content-Security-Policy Header

medium

The Content-Security-Policy (CSP) header is absent, leaving browsers without instructions on which sources of scripts, styles, and resources to trust.

CWE-358A05:2021

Missing X-Frame-Options Header

medium

The X-Frame-Options header is absent, allowing attackers to embed your app in an invisible iframe and trick users into clicking your UI elements (clickjacking).

CWE-1021A05:2021

Missing X-Content-Type-Options Header

low

The X-Content-Type-Options: nosniff header is absent, allowing browsers to guess (sniff) the content type of a response and potentially execute content as script.

CWE-430A05:2021

Missing HTTP Strict Transport Security (HSTS)

medium

The Strict-Transport-Security header is absent, allowing browsers to connect over plain HTTP and enabling downgrade attacks where an attacker intercepts unencrypted traffic.

CWE-319A02:2021

Cookies Without Secure Flag

medium

Session cookies set without the Secure flag, allowing them to be transmitted over unencrypted HTTP connections and intercepted by attackers on the network.

CWE-614A02:2021

Cookies Without HttpOnly Flag

medium

Session or auth cookies accessible to JavaScript via document.cookie, enabling XSS attacks to steal session tokens directly from the browser.

CWE-1004A07:2021

Cookies Without SameSite Attribute

medium

Cookies missing the SameSite attribute (or set to None without Secure), enabling cross-site request forgery by allowing cookies to be sent with cross-origin requests.

CWE-352A01:2021

Weak SSL/TLS Configuration

high

Server accepting obsolete TLS versions (TLS 1.0, TLS 1.1) or weak cipher suites, enabling downgrade attacks that decrypt supposedly encrypted traffic.

CWE-326A02:2021

LDAP Injection

high

User input inserted into LDAP search filters without escaping, allowing attackers to manipulate directory queries, bypass authentication, or extract sensitive directory data.

CWE-90A03:2021

XXE — XML External Entity Injection

high

XML parsers configured to process external entity references, allowing attackers to read arbitrary files from the server or trigger SSRF by crafting a malicious XML payload.

CWE-611A05:2021

HTTP Header Injection (CRLF Injection)

medium

User-controlled input included in HTTP response headers without sanitization, allowing attackers to inject arbitrary headers or split the response into two separate HTTP responses.

CWE-113A03:2021

Email Header Injection

medium

Unsanitized user input used in email To, From, CC, or Subject fields, allowing attackers to inject additional recipients and turn your email server into a spam relay.

CWE-93A03:2021

Log Injection

low

User-supplied input written to logs without sanitization, allowing attackers to forge log entries, hide their tracks, or inject malicious content into log files.

CWE-117A09:2021

Server-Side Template Injection (SSTI)

critical

User input passed directly into a template engine's render function, allowing attackers to execute arbitrary code on the server by injecting template syntax.

CWE-94A03:2021

Session Fixation

high

The server reuses the same session ID before and after login, allowing an attacker who planted a known session ID to hijack the authenticated session.

CWE-384A07:2021

No Account Lockout / Brute Force Protection

medium

Login endpoints with no rate limiting or lockout mechanism, allowing attackers to try unlimited username and password combinations until they find valid credentials.

CWE-307A07:2021

Weak Password Policy

medium

No minimum length, complexity, or common-password requirements on registration or password change, making user accounts easily brute-forced or guessed.

CWE-521A07:2021

OAuth State Parameter Missing

high

OAuth authorization flow implemented without a random `state` parameter, allowing CSRF attacks that link a victim's account to the attacker's OAuth identity.

CWE-352A07:2021

Token Not Invalidated on Logout

medium

JWT or session tokens remain valid after a user logs out because there is no server-side revocation mechanism, allowing stolen tokens to be used indefinitely.

CWE-613A07:2021

No Session Invalidation on Password Change

medium

Active sessions remain valid after a user changes their password, leaving attackers who already compromised a session with continued access even after the user takes remediation action.

CWE-613A07:2021

Insecure Remember Me Token

medium

Persistent 'remember me' tokens that are predictable, non-expiring, or stored insecurely — allowing attackers to forge tokens or maintain access indefinitely after compromise.

CWE-287A07:2021

Insecure Password Reset Flow

high

Password reset tokens without expiration, single-use enforcement, or proper randomness — allowing attackers to use leaked or guessable reset links to take over accounts.

CWE-640A07:2021

User Enumeration via Distinct Error Messages

low

Login or password reset endpoints returning different error messages for 'email not found' vs 'wrong password', allowing attackers to confirm which email addresses are registered.

CWE-204A07:2021

DOM-Based XSS

high

Malicious scripts executed by reading attacker-controlled data from the URL or browser APIs and writing it to the DOM using dangerous sinks like innerHTML or document.write.

CWE-79A03:2021

Stored XSS

high

User-supplied content saved to the database without sanitization and rendered in the browser as HTML, allowing persistent script injection that executes for every user who views the content.

CWE-79A03:2021

PostMessage Without Origin Verification

medium

window.addEventListener('message') handlers that process messages without checking the event.origin, allowing any website to send commands to your app's message handler.

CWE-346A01:2021

Advanced Clickjacking

medium

Absence of both X-Frame-Options and CSP frame-ancestors headers, combined with no client-side frame-busting logic, leaving the app fully embeddable in malicious iframes.

CWE-1021A05:2021

Iframe Without Sandbox Attribute

medium

Third-party or user-generated content loaded in an iframe without the sandbox attribute, allowing that content to run scripts, access parent cookies, and navigate the top-level frame.

CWE-693A05:2021

Missing Subresource Integrity (SRI)

low

CDN-hosted scripts and stylesheets loaded without the integrity attribute, meaning a compromised CDN can serve malicious versions of your dependencies to all your users.

CWE-353A08:2021

Client-Side Open Redirect

medium

JavaScript that redirects users to URLs taken from query parameters or URL fragments without validation, enabling phishing attacks using your trusted domain as a launchpad.

CWE-601A01:2021

Sensitive Data in URL Query Strings

medium

Tokens, passwords, or sensitive identifiers passed as URL query parameters, where they're visible in browser history, server logs, Referrer headers, and shared links.

CWE-598A02:2021

API Documentation Exposed in Production

low

Swagger UI, ReDoc, or other API documentation interfaces publicly accessible in production, giving attackers a free interactive map of every endpoint, parameter, and authentication method.

CWE-200A05:2021

GraphQL Introspection Enabled in Production

medium

GraphQL introspection is left enabled in production, allowing anyone to query the complete schema and discover all types, fields, mutations, and their argument structures.

CWE-200A05:2021

GraphQL Without Query Depth Limit

medium

GraphQL API with no depth limit on nested queries, allowing attackers to craft deeply nested queries that exhaust server resources and cause denial of service.

CWE-770A04:2021

GraphQL Batching Attack

medium

GraphQL endpoints accepting arrays of operations without size limits, enabling attackers to bypass rate limiting by bundling thousands of requests into a single HTTP call.

CWE-770A04:2021

Excessive Data Exposure

medium

API endpoints returning full database objects with sensitive fields instead of only the fields the client actually needs, exposing password hashes, internal IDs, admin flags, and other sensitive data.

CWE-213A03:2021

Missing Pagination on Data Endpoints

medium

API endpoints that return all matching records without pagination or limit, enabling attackers to dump entire tables and causing memory/performance issues under normal load.

CWE-770A04:2021

API Key with Excessive Scope

medium

Using admin or full-access API keys for operations that only require read access, meaning a compromised key gives attackers far more access than needed for the intended operation.

CWE-272A01:2021

Connection String Exposed

critical

Database connection URLs containing usernames and passwords are hardcoded in source code, making credentials accessible to anyone with repo access.

CWE-798A07:2021

Database Backup Exposed

high

Database dump files (.sql, .dump, .bak) committed to the repository expose the entire database schema and data, including user credentials and sensitive records.

CWE-538A05:2021

Raw Queries in ORMs

high

Using raw SQL methods like Prisma's $queryRaw or Sequelize's query() with string interpolation bypasses the ORM's built-in SQL injection protection.

CWE-89A03:2021

Unsafe Deserialization

high

Deserializing untrusted data with libraries like node-serialize or Python's yaml.load allows attackers to execute arbitrary code on the server.

CWE-502A08:2021

Exploitable N+1 Queries

low

Unbounded relation expansion in ORM queries allows attackers to trigger thousands of database queries with a single API request, causing denial of service.

CWE-400API4:2023

Path Traversal

high

File paths constructed with unvalidated user input allow attackers to read or write arbitrary files on the server using ../ sequences.

CWE-22A01:2021

File Upload No Validation

high

Accepting file uploads without verifying type, size, or content allows attackers to upload malicious executables, web shells, or oversized files that crash the server.

CWE-434A04:2021

SVG with JavaScript

medium

Accepting SVG uploads without sanitization allows attackers to embed JavaScript in SVG files, enabling XSS attacks when the SVG is rendered in a browser.

CWE-79A03:2021

EXIF Not Stripped

low

Images served without stripping EXIF metadata can leak GPS coordinates, device information, timestamps, and other sensitive data about the person who took the photo.

CWE-200A01:2021

PDF Generation Injection

medium

Injecting HTML or JavaScript into PDF generation templates allows attackers to read server-side files, make internal network requests, or execute scripts in the PDF viewer.

CWE-79A03:2021

Zip Slip

high

Extracting ZIP archives without validating file paths allows attackers to craft archives that write files outside the target directory, overwriting critical application files.

CWE-22A01:2021

MIME Type Mismatch

medium

Validating file type only by extension instead of content allows attackers to upload malicious files with renamed extensions, bypassing security controls.

CWE-434A04:2021

Race Condition in Payments

high

Read-modify-write payment operations without database transactions allow attackers to exploit timing windows and spend the same balance multiple times.

CWE-362A04:2021

Price Manipulation

critical

Accepting prices from the client instead of looking them up server-side allows attackers to modify checkout requests and purchase items at any price they choose.

CWE-472A04:2021

Feature Flags Exposed

low

Feature flags included in the frontend JavaScript bundle reveal unreleased features, internal testing configurations, and potential attack surfaces to anyone inspecting the code.

CWE-200A05:2021

Debug Routes in Production

medium

Development and testing routes like /debug, /test, /seed, or /api/dev left active in production expose internal data, bypass authentication, or allow state manipulation.

CWE-489A05:2021

Privilege Escalation

high

Profile update endpoints that accept role or permission fields from the request body allow users to promote themselves to admin by adding role: 'admin' to their update request.

CWE-269A01:2021

Time-based Attack

medium

Using standard string comparison (=== or ==) for secrets like API keys or tokens allows attackers to guess values character by character by measuring response time differences.

CWE-208A02:2021

Open Redirect

medium

Redirecting users to URLs from unvalidated query parameters allows attackers to craft phishing links that appear to come from your trusted domain.

CWE-601A01:2021

Mass Assignment Detailed

high

Passing the entire request body directly to database create or update operations allows attackers to set any field, including internal ones like verified, credits, or billing status.

CWE-915API3:2023

ECB Mode

medium

Using ECB (Electronic Codebook) mode for encryption produces identical ciphertext blocks for identical plaintext blocks, revealing patterns in the encrypted data.

CWE-327A02:2021

Static IV/Nonce

high

Using a hardcoded or constant Initialization Vector (IV) or nonce for encryption defeats the purpose of the IV and allows attackers to detect patterns and decrypt data.

CWE-329A02:2021

Weak Key Size

medium

Using cryptographic keys shorter than recommended minimums (RSA less than 2048 bits, AES less than 128 bits) makes encryption vulnerable to brute-force attacks with modern hardware.

CWE-326A02:2021

Certificate Validation Disabled

critical

Disabling TLS certificate validation with NODE_TLS_REJECT_UNAUTHORIZED=0 or rejectUnauthorized: false allows man-in-the-middle attacks on all HTTPS connections.

CWE-295A07:2021

Weak PRNG for Security

high

Using Math.random() or Date.now() to generate tokens, session IDs, or reset codes produces predictable values that attackers can guess or reproduce.

CWE-338A02:2021

JWT Algorithm None

critical

Accepting 'none' as a valid JWT signing algorithm lets attackers forge tokens without a secret key.

CWE-327A02:2021

Hardcoded Encryption Key

high

Embedding encryption keys as string literals in code means anyone with repo access can decrypt your data.

CWE-321A02:2021

Prototype Pollution

high

Merging user-controlled objects without filtering lets attackers modify Object.prototype and affect every object in the application.

CWE-1321A03:2021

ReDoS (Regex Denial of Service)

medium

Regular expressions with nested quantifiers can take exponential time to evaluate certain inputs, freezing your Node.js event loop.

CWE-1333A05:2021

Insecure Randomness

high

Using Math.random() for security-sensitive values like tokens or IDs is predictable and can be brute-forced.

CWE-338A02:2021

Malicious Service Worker

medium

A service worker registered without scope restrictions can intercept all network requests for a domain, including those from other pages.

CWE-693A05:2021

Function Timeout Abuse

medium

Serverless functions without a configured timeout can be kept running indefinitely by malicious or malformed requests, draining your budget.

CWE-400A05:2021

Over-privileged IAM Roles

medium

Giving serverless functions or services more IAM permissions than they need turns a minor breach into a full account compromise.

CWE-269A01:2021

Environment Variables in Logs

high

Logging process.env dumps all your secrets — API keys, database passwords, signing keys — directly into your log system.

CWE-532A09:2021

Shared /tmp State

medium

Serverless functions reuse execution environments between invocations, so sensitive files written to /tmp can be read by later requests from different users.

CWE-377A02:2021

Cold Start State Leak

medium

Global variables in serverless functions persist across invocations in the same execution environment, leaking user data between requests.

CWE-400A02:2021

Typosquatting

high

Installing a package with a name one character off from a popular library can install malware instead of the real package.

CWE-829A06:2021

Abandoned Packages

medium

Dependencies that haven't been updated in 2+ years are unlikely to receive security patches when new vulnerabilities are discovered.

CWE-1104A06:2021

Malicious Install Scripts

high

npm postinstall scripts run automatically with your system permissions during npm install, making them a common vector for malware.

CWE-829A06:2021

Dependency Confusion

high

Private internal packages without a scope prefix can be hijacked by publishing a higher-versioned public package with the same name.

CWE-830A06:2021

Missing Lockfile

medium

Without a lockfile, npm install resolves the latest compatible version of every dependency — which can introduce a newly compromised package on your next deploy.

CWE-1104A06:2021

Deep Link Hijacking

medium

Custom URL schemes without host verification let malicious apps intercept your app's deep links and steal OAuth tokens or sensitive parameters.

CWE-926A01:2021

Clipboard Exposure

low

Sensitive data copied to the clipboard (passwords, tokens, card numbers) persists there indefinitely and can be read by any app.

CWE-312A02:2021

Screenshot Not Prevented

low

Banking and payment screens without screenshot protection allow sensitive data to be captured by malware or appear in Android's recent apps screen.

CWE-200A02:2021

Certificate Pinning Missing

high

Without certificate pinning, attackers on the same network can intercept your app's HTTPS traffic with a rogue certificate authority.

CWE-295A05:2021

Root/Jailbreak Detection Missing

medium

Running a financial or health app on a rooted or jailbroken device means all security controls can be bypassed by the device owner.

CWE-919A08:2021

Biometric Bypass

medium

Biometric authentication that only runs client-side can be bypassed by patching the app binary — the server must validate the session independently.

CWE-308A07:2021

Running as Root in Docker

medium

Containers that run as root give any code execution vulnerability immediate root access to the container — and potentially the host.

CWE-250A05:2021

Docker Latest Tag

low

Using FROM image:latest means a new pull can silently change your base image, breaking reproducibility and potentially introducing vulnerabilities.

CWE-1104A06:2021

Secrets in Dockerfile

critical

Secrets added via ENV, ARG, or COPY .env in a Dockerfile are baked into the image layers and readable by anyone who pulls the image.

CWE-540A02:2021

Unnecessary Exposed Ports

low

EXPOSE-ing ports your application doesn't actually use increases the attack surface without any benefit.

CWE-16A05:2021

No Docker Health Check

low

Without a HEALTHCHECK instruction, Docker and orchestrators can't detect when your container is running but broken — routing traffic to a dead app.

CWE-778

Email Spoofing (Missing SPF/DKIM/DMARC)

medium

Without SPF, DKIM, and DMARC DNS records, anyone can send emails claiming to be from your domain — enabling phishing attacks against your users.

CWE-290A05:2021

SMS Injection

medium

Including unvalidated user input in SMS messages allows attackers to inject newlines and craft fraudulent messages appearing to come from your application.

CWE-74A03:2021

Push Notification Injection

low

Including unsanitized user input in push notification payloads allows attackers to craft misleading notifications in your app's name.

CWE-74A03:2021

No Password Policy

medium

Accepting any password — including '123' or 'a' — makes your user accounts trivially vulnerable to credential stuffing and brute force attacks.

CWE-521A07:2021

No Rate Limit on Login

medium

A login endpoint without rate limiting can be brute-forced thousands of times per second until a valid password is found.

CWE-307A07:2021

No MFA/2FA

low

Without multi-factor authentication, a stolen or guessed password is all it takes to fully compromise an account.

CWE-308A07:2021

No Email Verification

medium

Allowing unverified email accounts lets attackers register with someone else's email address, potentially locking them out or impersonating them.

CWE-358A07:2021

Password Reset Token Without Expiry

medium

Password reset links that never expire stay valid indefinitely — an old email in a breach gives attackers a permanent account takeover path.

CWE-640A07:2021

No Logout Everywhere

low

Not providing a 'log out all devices' option leaves sessions active on stolen or forgotten devices indefinitely.

CWE-613A07:2021

No Login Notification

info

Not notifying users of new logins means they have no way to know if their account was accessed from an unfamiliar device.

CWE-778A09:2021

No Password Strength Indicator

info

Without real-time feedback on password strength, users default to weak passwords they already know — even when you require complexity.

CWE-521A07:2021

No Confirmation for Critical Actions

medium

Destructive or irreversible actions (delete account, transfer funds, change email) without a confirmation step are vulnerable to CSRF and accidental clicks.

CWE-778A01:2021

No .env.example File

low

Without a .env.example file, new contributors don't know what environment variables are required, leading to insecure workarounds like hardcoding values.

CWE-1059

No Security Linting

low

Without security-focused ESLint rules, common vulnerabilities like XSS sinks, dangerouslySetInnerHTML, and eval() usage slip through code review.

CWE-1076A06:2021

No Git Security Hooks

low

Without pre-commit hooks that scan for secrets and security issues, developers can accidentally push API keys and passwords to the repository.

CWE-1059A02:2021

Inadequate .gitignore

medium

A .gitignore that doesn't cover .env files, build artifacts, and IDE configs can lead to secrets or sensitive data being accidentally committed.

CWE-540A02:2021

Insecure npm Scripts

medium

npm scripts that fetch and execute remote code, or that embed secrets as shell arguments, are a supply chain and credential exposure risk.

CWE-78A06:2021

Missing Lockfile (Project Config)

medium

A project without a committed lockfile can install different dependency versions on each machine, making builds non-reproducible and supply chain attacks harder to detect.

CWE-1104A06:2021

Hardcoded Test Data

low

Test files with hardcoded real email addresses, phone numbers, or production-like credentials can leak PII and create security confusion.

CWE-798A02:2021

Console.log of Sensitive Data

medium

Logging passwords, tokens, full user objects, or payment data to the console sends that data to your log aggregator in plaintext.

CWE-532A09:2021

Stack Traces Exposed to User

medium

Returning stack traces or internal error details in API responses reveals your file structure, library versions, and code paths to attackers.

CWE-209A05:2021

No React Error Boundary

low

Without error boundaries, a JavaScript error in any component crashes the entire React tree and shows a blank screen to the user.

CWE-392

Insufficient Security Logging

low

Not logging security events (failed logins, permission denials, suspicious actions) means you can't detect attacks in progress or reconstruct what happened after a breach.

CWE-778A09:2021

PII in Logs

medium

Logging personally identifiable information (email, full name, IP address, phone number) creates privacy and compliance risks under GDPR and CCPA.

CWE-532A09:2021

NODE_ENV Not Set to Production

medium

Running Node.js without NODE_ENV=production enables verbose error messages, disables caching optimizations, and can activate development-only middleware.

CWE-16A05:2021

Debug Mode Active in Production

medium

Debug mode enabled in production exposes internal state, enables verbose logging, and sometimes activates interactive debugging endpoints that attackers can exploit.

CWE-215A05:2021

No Health Check Endpoint

low

Without a /health endpoint, load balancers and orchestrators can't verify your application is actually working before routing traffic to it.

CWE-778

No Error Monitoring

low

Without error monitoring, production errors are invisible until a user reports them — which most never do.

CWE-778A09:2021

Dev Environment Variables in Production

high

Using development credentials (test API keys, local database URLs, sandbox payment keys) in production puts real users at risk.

CWE-547A05:2021

No Backup Policy

info

Without regular tested backups, a ransomware attack, accidental deletion, or database corruption can result in permanent data loss.

CWE-16A05:2021

No Session Timeout

medium

Sessions that never expire stay valid indefinitely, giving attackers unlimited time to use stolen tokens.

CWE-613A07:2021

No Privacy Policy

low

Operating without a privacy policy violates GDPR, CCPA, and similar regulations — and makes users rightfully distrust your handling of their data.

CWE-16

No Terms of Service

low

Without terms of service, you have no legal basis to restrict abuse, terminate accounts, or limit your liability for user-generated content.

CWE-16

No Account Deletion

medium

Not offering account deletion violates GDPR's right to erasure and CCPA's right to delete — and is a significant privacy red flag for users.

CWE-16

No Cookie Banner

low

Setting non-essential cookies without user consent violates GDPR and ePrivacy Directive requirements for EU users.

CWE-16

Payment Data Stored Locally

critical

Storing full card numbers, CVVs, or PANs in localStorage, sessionStorage, or your own database violates PCI DSS and creates massive liability.

CWE-312A02:2021

Tracking Without Consent

low

Running user tracking, fingerprinting, or behavioral analytics without explicit consent violates GDPR, CCPA, and similar privacy laws.

CWE-16

Excessive Data Collection

low

Collecting more personal data than you need violates GDPR's data minimization principle and increases your liability when a breach occurs.

CWE-16

No Last Activity Display

info

Not showing users their account's last activity makes it harder for them to detect unauthorized access.

CWE-778

Sensitive Data in Emails

medium

Sending passwords, full tokens, card details, or excessive personal data in emails exposes that data to email providers, forwarding recipients, and anyone with inbox access.

CWE-312A02:2021

No Rate Limit on Email/SMS Sending

medium

Email and SMS endpoints without rate limiting can be abused to spam users or drain your sending budget through automated requests.

CWE-400A05:2021

Sensitive Data in Push Notifications

low

Push notification payloads are visible on the lock screen and logged by notification services — don't include account numbers, balances, or personal identifiers.

CWE-312A02:2021

No File Size Limit

medium

File upload endpoints without size limits allow attackers to exhaust disk space, memory, and CPU with multi-gigabyte uploads.

CWE-400A05:2021

No Request Body Limit

medium

JSON API endpoints without a body size limit can be DoS'd by sending huge JSON payloads that exhaust server memory during parsing.

CWE-400A05:2021

No Global Rate Limiting

medium

Without global rate limiting at the edge or middleware level, any endpoint can be flooded with requests until the server is overwhelmed.

CWE-770A05:2021

No Request Timeout

low

HTTP requests without server-side timeouts allow slow clients or malicious slow-body attacks to hold server connections open indefinitely.

CWE-400A05:2021

WebSocket Without Authentication

high

WebSocket endpoints that accept connections without verifying authentication allow unauthenticated users to receive real-time data streams meant for authenticated users.

CWE-306A01:2021

Prompt Injection

high

User input is concatenated directly into an LLM prompt, letting attackers override your instructions and make the AI do things you never intended.

CWE-77OWASP LLM01:2025

PII Leakage to AI Models

high

Your app sends personally identifiable information — emails, names, passwords, phone numbers — to external AI APIs, exposing user data to third-party model providers.

CWE-359OWASP LLM02:2025

AI Response Without Validation

medium

LLM output is rendered or executed directly without checking whether it matches the expected format or contains harmful content.

CWE-116OWASP LLM02:2025

AI API Key in Frontend

critical

Your OpenAI, Anthropic, or other AI API key is exposed in client-side code, where anyone can steal it and rack up charges on your account.

CWE-312OWASP LLM09:2025

No AI Output Sanitization

medium

LLM-generated HTML or code is rendered directly in the UI without sanitization, opening the door to stored XSS attacks.

CWE-79OWASP LLM02:2025

Excessive AI Context

medium

Your app sends entire database records, config files, or secrets as context to an AI model, exposing far more data than the task requires.

CWE-359OWASP LLM02:2025

AI Model Fallback Insecure

low

When the primary AI model fails, your app silently falls back to a weaker or unvalidated model that bypasses your safety configurations.

CWE-636

No AI Rate Limiting

medium

Your app makes AI API calls with no per-user limits, letting a single user (or bot) trigger thousands of requests and drain your API budget in minutes.

CWE-770OWASP LLM04:2025

AI-Generated Code Execution

critical

Your app uses eval() or Function() to execute code that was generated by an LLM, giving attackers a path to arbitrary code execution via prompt injection.

CWE-95OWASP LLM02:2025

Unencrypted Database Connection

high

Your database connection doesn't use SSL/TLS, meaning all queries and results travel over the network in plaintext and can be intercepted.

CWE-319OWASP A02:2021

Database Publicly Accessible

critical

Your database is bound to 0.0.0.0 or exposed on a public IP without a VPC or firewall, making it directly reachable from the internet.

CWE-284OWASP A05:2021

Default Database Credentials

critical

Your database uses factory-default credentials like postgres:postgres, root:root, or admin:admin — the first thing any attacker tries.

CWE-1392OWASP A07:2021

Connection String with Inline Password

high

A database connection string with a plaintext password is hardcoded in your source code, committing your database credentials to version control.

CWE-312OWASP A02:2021

MongoDB Without Authentication

critical

Your MongoDB connection has no authentication credentials, allowing anyone who can reach the database port to read, modify, or delete all data.

CWE-306OWASP A07:2021

Redis Without Authentication

high

Your Redis instance has no password and is accessible beyond localhost, letting anyone who can reach it read all cached data, session tokens, and queue contents.

CWE-306OWASP A07:2021

Elasticsearch Publicly Accessible

critical

Your Elasticsearch instance is reachable from the internet without authentication, exposing all indexed data to anyone who knows the endpoint URL.

CWE-284OWASP A05:2021

No Connection Pool Limits

medium

Your database connection pool has no max connection limit, meaning a traffic spike or slow query can exhaust all available database connections and take your app down.

CWE-400

Missing Database Connection Timeout

medium

Your database connection has no timeout configured, so a slow or unresponsive database will hang your entire application indefinitely instead of failing fast.

CWE-400

Database Credentials in Environment Logs

high

Your DATABASE_URL or database password gets printed to application logs via console.log or error messages, exposing credentials to anyone with log access.

CWE-532OWASP A09:2021

Missing Database SSL Certificate Validation

high

Your database SSL connection uses rejectUnauthorized: false, which encrypts traffic but doesn't verify the server's identity, leaving you open to man-in-the-middle attacks.

CWE-295OWASP A02:2021

Hardcoded Database Host in Source

medium

Your database hostname and port are hardcoded in source code instead of environment variables, exposing your infrastructure topology and making deployments inflexible.

CWE-547

S3 Bucket Public Access

critical

Your S3 bucket is publicly readable due to a public ACL, disabled Block Public Access settings, or a wildcard bucket policy — anyone on the internet can list and download your files.

CWE-284OWASP A05:2021

Cloud Metadata SSRF

critical

Your app fetches user-supplied URLs without blocking cloud metadata endpoints like 169.254.169.254, letting attackers steal your cloud credentials via SSRF.

CWE-918OWASP A10:2021

AWS Credentials Hardcoded

critical

AWS access keys (starting with AKIA) or secret access keys are hardcoded in your source code, giving anyone who reads the code full access to your AWS account.

CWE-798OWASP A02:2021

IAM Overly Permissive Policy

high

Your IAM policy uses Action: '*' or Resource: '*', granting far more permissions than needed and turning any credential leak into a full account takeover.

CWE-269OWASP A01:2021

Cloud Storage CORS Misconfiguration

medium

Your S3 or GCS bucket has CORS configured with origin: '*' or AllowedMethods: ['*'], letting any website read your storage responses and potentially access private data.

CWE-942OWASP A05:2021

Cloud Function Public Invocation

high

Your Lambda or Cloud Function allows unauthenticated invocation, meaning anyone on the internet can trigger it without credentials.

CWE-284OWASP A01:2021

Unencrypted Cloud Storage

medium

Your S3 or GCS bucket doesn't have server-side encryption enabled, meaning data is stored in plaintext on AWS/Google's infrastructure.

CWE-311OWASP A02:2021

Cloud KMS Key Not Rotated

low

Your KMS encryption keys don't have automatic rotation enabled, meaning the same key material is used indefinitely — increasing the risk if the key is ever compromised.

CWE-324

Cross-Account Access Misconfigured

high

Your IAM trust policy uses a wildcard principal or allows unknown AWS accounts to assume your roles, letting external accounts access your resources.

CWE-269OWASP A01:2021

Cloud Logging with Sensitive Data

medium

Your app logs PII, tokens, or credentials to CloudWatch, Stackdriver, or other cloud logging services, where they persist indefinitely and are accessible to anyone with log read permissions.

CWE-532OWASP A09:2021

Missing VPC / Security Group Rules

medium

Your cloud resources are deployed without a VPC or with security groups that allow unrestricted inbound traffic (0.0.0.0/0), exposing internal services to the internet.

CWE-284OWASP A05:2021

Cloud Resource Without Tags

info

Your cloud resources lack environment, owner, or cost-center tags, making it impossible to track ownership, allocate costs, or quickly identify resources during an incident.

Terraform State Exposed

critical

Your terraform.tfstate file is committed to your repository or stored in an unencrypted, publicly accessible location — it contains every secret and resource ID in your infrastructure.

CWE-312OWASP A02:2021

Terraform Provider Credentials Hardcoded

critical

AWS, GCP, or Azure credentials are hardcoded in your .tf files instead of using environment variables or instance roles, committing cloud access keys to version control.

CWE-798OWASP A02:2021

Kubernetes Privileged Container

high

Your Kubernetes pod runs with securityContext.privileged: true, giving the container full access to the host kernel and effectively bypassing container isolation.

CWE-269OWASP A05:2021

Kubernetes Default Service Account

medium

Pods running with the default service account inherit cluster-level RBAC permissions that are often far more powerful than the workload needs, enabling lateral movement if the pod is compromised.

CWE-269OWASP A01:2021

Helm Chart Secrets in Values

high

Passwords, API keys, and other secrets are hardcoded directly in Helm values.yaml files, which get committed to version control and exposed to anyone with repository access.

CWE-798OWASP A07:2021

Missing Kubernetes Network Policies

medium

Without NetworkPolicy resources, every pod in the cluster can communicate with every other pod on any port, enabling unrestricted lateral movement after a single pod is compromised.

CWE-284OWASP A01:2021

Kubernetes Secrets Not Encrypted at Rest

medium

Kubernetes Secrets are stored as base64-encoded plaintext in etcd by default, meaning anyone with access to the etcd datastore or its backups can read every secret in the cluster.

CWE-312OWASP A02:2021

No Infrastructure Drift Detection

low

Without running terraform plan in CI or a drift detection tool, manual changes to cloud resources go undetected, creating security gaps between your declared infrastructure and what actually runs in production.

CWE-1127

Unpinned GitHub Actions

high

Using GitHub Actions referenced by mutable tags like @main or @v3 instead of full commit SHAs means a compromised or hijacked action can inject malicious code into your CI pipeline without any change to your workflow file.

CWE-1395OWASP A08:2021

GitHub Actions Script Injection

critical

Using untrusted event data like github.event.issue.title directly inside run: blocks allows attackers to inject arbitrary shell commands into your CI pipeline by crafting malicious issue titles, PR bodies, or commit messages.

CWE-94OWASP A03:2021

Secrets Leaked in CI Logs

high

Printing or echoing environment variables containing secrets in CI scripts exposes them in build logs, which are often accessible to all repository collaborators and sometimes publicly visible on open-source projects.

CWE-532OWASP A09:2021

Self-Hosted Runner Risks

high

Using self-hosted GitHub Actions runners with pull_request_target or public fork workflows allows untrusted code from external contributors to execute on your infrastructure with access to secrets, persisted state, and the host network.

CWE-94OWASP A08:2021

Overly Permissive Workflow Permissions

medium

GitHub Actions workflows with permissions: write-all or no explicit permissions block grant the GITHUB_TOKEN excessive access, allowing a compromised step to modify code, create releases, write packages, or change repository settings.

CWE-269OWASP A01:2021

Missing Branch Protection Rules

medium

Without branch protection on main/production branches, any developer (or compromised account) can push directly, force-push destructive changes, or merge without code review, bypassing all quality and security gates.

CWE-693

CI Pipeline Without Security Scanning

low

A CI/CD pipeline that only runs tests and linting without any SAST, DAST, dependency scanning, or secret detection means vulnerabilities are only found after deployment -- if they are found at all.

CWE-1127

Artifact Tampering Risk

medium

Build artifacts (binaries, container images, packages) produced without cryptographic signatures or provenance attestations can be silently replaced by an attacker between the CI build and deployment, resulting in supply chain compromise.

CWE-353OWASP A08:2021

WebSocket Missing Origin Validation

high

A WebSocket server that does not check the Origin header accepts connections from any website, allowing cross-site WebSocket hijacking where a malicious page connects to your WS endpoint using the victim's authenticated session.

CWE-346OWASP A01:2021

WebSocket Flooding (No Rate Limit)

medium

A WebSocket server without message rate limiting allows a single client to send thousands of messages per second, exhausting server resources, degrading performance for all users, and potentially causing a denial-of-service.

CWE-770