OWASP
Security Misconfiguration
OWASP
Cloud Security
S3 Bucket
+2 more

Security Misconfiguration Jumped to #2 in OWASP 2025: Complete Prevention Guide

SCR Security Research Team
February 10, 2026
18 min read
Share

Why Misconfiguration Surged to #2

Security Misconfiguration (A05:2021 → A02:2025) made the biggest jump in the OWASP Top 10 2025 update, climbing from #5 to #2. This reflects a fundamental shift: as applications move to cloud-native architectures, the configuration surface area has exploded.

The Root Cause: Modern applications aren't just code — they're code + infrastructure + configuration + secrets + cloud resources + third-party services, each with its own security settings. A single misconfigured S3 bucket, an exposed admin panel, or a default password can compromise an otherwise secure application.

YearOWASP RankingCWEs MappedIncidence Rate
2017#6894.2%
2021#52084.5%
2025#23126.3%

The 10 Most Exploited Misconfigurations

1. Cloud Storage Misconfigurations

The Problem: S3 buckets, Azure Blob containers, and GCS buckets are publicly accessible by default in many deployment scenarios.

Real-World Breaches:

CompanyYearData ExposedCause
Capital One2019106M recordsMisconfigured WAF + SSRF to metadata
Microsoft20232.4TB emailsMisconfigured Azure Blob SAS token
Toyota2023260K customer recordsPublic cloud bucket for 10 years
Pentagon (USSOCOM)20233TB emails, filesUnauthenticated Azure server

Fix:

# AWS — Block all public access at the account level
aws s3control put-public-access-block \
  --account-id 123456789012 \
  --public-access-block-configuration \
  BlockPublicAcls=true,IgnorePublicAcls=true,\
  BlockPublicPolicy=true,RestrictPublicBuckets=true

# Verify
aws s3api get-bucket-policy-status --bucket my-bucket

2. Default Credentials

Still the #1 IoT and admin panel vulnerability. Databases, admin consoles, network devices, and CI/CD tools ship with default credentials that are often never changed.

ProductDefault CredentialsFound In
JenkinsNo password (initial setup)CI/CD pipelines
MongoDBNo auth (default config)Databases
Kibanaelastic / changemeLogging infrastructure
Router admin panelsadmin / adminNetwork devices
phpMyAdminroot / (empty)Database management

Shodan Search Statistic: At any given time, over 35,000 MongoDB instances are publicly accessible with no authentication, exposing an estimated 12+ petabytes of data (Comparitech, 2025).

3. Verbose Error Messages

Error messages that leak stack traces, database schemas, file paths, or version information give attackers a roadmap.

// VULNERABLE — Leaks internal details in production
app.use((err, req, res, next) => {
  res.status(500).json({
    error: err.message,
    stack: err.stack,            // Stack trace with file paths
    query: err.sql,              // SQL query that failed
    connectionString: err.host,  // Database host information
  });
});
// SECURE — Generic errors in production, detailed logs internally
app.use((err, req, res, next) => {
  // Log full details for internal debugging
  logger.error({
    message: err.message,
    stack: err.stack,
    requestId: req.id,
    path: req.path,
    timestamp: new Date().toISOString(),
  });

  // Return generic message to client
  res.status(500).json({
    error: "An internal error occurred",
    requestId: req.id, // For support reference only
  });
});

4. Unnecessary Features Enabled

FeatureRiskFix
Directory listingExposes file structureDisable in web server config
DEBUG mode in productionVerbose errors, debug endpointsDEBUG=false in production
TRACE HTTP methodCross-site tracing attacksDisable in web server
Admin panels on public URLsUnauthorized accessIP restriction + strong auth
GraphQL introspection in prodSchema disclosureDisable introspection
Swagger UI in productionAPI documentation exposureRestrict to internal network

5. Missing Security Headers

// Essential security headers for every web application
app.use((req, res, next) => {
  // Prevents clickjacking
  res.setHeader("X-Frame-Options", "DENY");

  // Prevents MIME type sniffing
  res.setHeader("X-Content-Type-Options", "nosniff");

  // Content Security Policy — adjust per application
  res.setHeader("Content-Security-Policy",
    "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'");

  // Force HTTPS
  res.setHeader("Strict-Transport-Security",
    "max-age=31536000; includeSubDomains; preload");

  // Don't send Referer for cross-origin requests
  res.setHeader("Referrer-Policy", "strict-origin-when-cross-origin");

  // Opt out of tracking
  res.setHeader("Permissions-Policy",
    "camera=(), microphone=(), geolocation=(), payment=()");

  next();
});

6. Exposed Management Interfaces

7. Outdated/Unpatched Software

8. Missing TLS/SSL Configuration

9. Permissive Network Policies

10. Misconfigured CI/CD Pipelines (secrets in logs, no branch protection)


Cloud-Specific Misconfiguration Checklist

AWS

  • S3 Block Public Access enabled at account level
  • No IAM users with AdministratorAccess for daily operations
  • CloudTrail enabled in all regions
  • No security groups with 0.0.0.0/0 on SSH (port 22)
  • IMDSv2 enforced on all EC2 instances (prevents SSRF to metadata)
  • No root account access keys exist
  • GuardDuty enabled

Azure

  • Storage accounts require private endpoints
  • No Network Security Groups allowing all inbound traffic
  • Azure Defender enabled for all resource types
  • Managed identities used instead of service principal secrets
  • Activity Log alerts configured

GCP

  • Uniform bucket-level access enabled
  • No default service account used for workloads
  • VPC Service Controls enabled for sensitive projects
  • OS Login enabled for Compute Engine
  • Cloud Audit Logs enabled

Automated Misconfiguration Detection

ToolTypeWhat It Scans
ScoutSuiteOpen SourceMulti-cloud misconfiguration (AWS, Azure, GCP)
ProwlerOpen SourceAWS security best practices (300+ checks)
CheckovOpen SourceIaC misconfiguration (Terraform, CloudFormation, K8s)
trivyOpen SourceContainer + IaC misconfiguration scanning
tfsecOpen SourceTerraform-specific security scanning
CSPM (commercial)SaaSContinuous cloud security posture management

Further Reading

Advertisement