Software Securityhome
Fix a findingSearch
Tag

Access control

20 guides tagged Access control, grouped by topic, with the SDLC phase and role each is written for.

SDLC phases
Roles

Application security

8 guides
Guide · Application security

Enforce authorization for every object action

Authorize the authenticated subject, requested operation, and specific resource together; a valid login or unpredictable identifier is insufficient.

Development, Testing · Developers

Guide · Application security

Review tenant boundaries before implementation

Trace tenant identity through requests, data stores, caches, jobs, and administration, then turn plausible isolation failures into tests.

Design · Developers, AppSec engineers

Guide · Application security

Authorize functions and fields as well as objects

Prevent mass assignment, sensitive-field exposure and administrative actions that a valid object lookup alone cannot protect.

Development, Testing · Developers, AppSec engineers

Guide · Application security

Review a code change through its trust boundaries

Turn a pull request into a small set of security claims that can be checked against the surrounding system and tests.

Development, Testing · Developers, AppSec engineers

Guide · Application security

Keep untrusted object keys out of prototype and authority paths

Trace an actual nested-merge mutation, replace it with a narrow schema, and make authorization independent of inherited properties.

Development · Developers, AppSec engineers

Reference · Application security

Secure design patterns: a catalogue for insecure-design (A06)

A catalogue of reusable secure-design patterns, grouped by concern, each with when to use it, a short example and the failure it prevents: choke-point authorization, capability tokens, parse-don't-validate, safe-by-default APIs, tenant scoping, fail-closed, idempotency, and more.

Design · AppSec engineers

Case study · Application security

Case study: First American's EaglePro document exposure (2019)

How sequential IDs in unauthenticated links exposed First American's title documents in 2019, after its own penetration test found the flaw and a clerical error let it go unfixed.

Development, Testing, Maintenance, Security program · Developers, AppSec engineers, Security leaders

Case study · Application security

Case study: Spring4Shell (CVE-2022-22965)

How Spring's data binding let request parameters reach the class loader on JDK 9 and later in 2022, why the denylist workaround leaked, and what it teaches about framework-level mass assignment.

Development, Maintenance · Developers, AppSec engineers, Platform engineers and SREs

Runtime, cloud & APIs

6 guides
Guide · Runtime, cloud & APIs

Run Kubernetes workloads with only the privileges they need

Review pod settings, service accounts and effective permissions together before treating a namespace as an isolation boundary.

Development, Release, Maintenance · Developers, Platform engineers and SREs

Guide · Runtime, cloud & APIs

Prove network and admission policies enforce the intended boundary

Verify allowed traffic and rejected deployments in the cluster instead of treating policy files as evidence of isolation.

Development, Release, Maintenance · Platform engineers and SREs

Guide · Runtime, cloud & APIs

Review cloud permissions and role trust together

Distinguish who can obtain a cloud identity from what that identity can do, then test the effective access path.

Release, Maintenance · Developers, Platform engineers and SREs

Guide · Runtime, cloud & APIs

Authenticate workloads and authorize their service actions

Use service identities, mutual TLS and function permissions without mistaking an encrypted connection for complete authorization.

Release, Maintenance · Platform engineers and SREs

Guide · Runtime, cloud & APIs

Prevent shared-cache poisoning and private-response deception

Define lookup and storage policy, trace cache/origin interpretation differences and verify both public reuse and private isolation.

Design, Maintenance · Developers, Platform engineers and SREs

Case study · Runtime, cloud & APIs

Case study: Microsoft AI researchers' over-permissive SAS token (2023)

How an over-permissive Azure Storage SAS token in a public repository for AI models exposed internal Microsoft data in 2023, and how to scope, scan for and revoke signed URLs.

Maintenance · Platform engineers and SREs

Identity & cryptography

2 guides

Governance & frameworks

1 guide

AI security

3 guides

Practice

Browser lab · Practitioner · 25–40 min

Privileged container lab: Reject a privileged workload before deployment

A deployment review checks only the first container. A privileged init container slips through. Repair a deliberately small admission predicate and test all container lists.

Browser lab · Practitioner · 25–40 min

RAG access control lab: Stop a retriever from returning another tenant’s documents

A search helper sends every matching document to a model and asks the model to respect permissions. Repair filtering before any content reaches the model.

Browser lab · Advanced · 30–45 min

Excessive agency lab: Bind an agent’s action to the approved arguments

An assistant receives approval to export one report, then substitutes a different report and destination. Repair the tool gateway that authorizes the final action.

Browser lab · Foundation · 20–30 min

IDOR lab: Repair an invoice authorization bug

Bob can retrieve Alice’s invoice by changing the URL. You own the endpoint’s permission check. Reproduce the leak, patch the function below, and prove that Alice can still read her invoice.

Browser lab · Foundation · 20–30 min

Mass assignment lab: Update only the fields users may edit

PATCH /me merges the whole request body into the stored user, so adding "role": "admin" turns a member into an administrator. Change only the fields a user may edit on their own profile.

Browser lab · Practitioner · 25–40 min

NetworkPolicy lab: Lock down a shop namespace

One hurried NetworkPolicy lets every pod in every namespace reach the API, and nothing protects the web tier or the database. Rewrite the shop namespace’s policies so only the flows the application needs are allowed.

Browser lab · Practitioner · 25–40 min

IAM trust policy lab: Evaluate a role trust policy against the confused deputy

An evaluator for AWS sts:AssumeRole trust policies matches the principal and action but ignores the Condition block and does not honour an explicit Deny, so a broad principal can assume a role without the external id — the confused deputy. Repair evaluate_trust to enforce conditions and Deny.

Fix card · CWE-862, CWE-639, CWE-863

Missing object-level authorization (IDOR and BOLA)

Missing object-level authorization (IDOR, called BOLA in the OWASP API list) happens when an API checks that a caller is signed in and then loads whatever invoice, order or file the request names, so changing an ID in the URL, the query string or a bulk export returns someone else's data.

Fix card · CWE-915

Mass assignment (over-posting)

Mass assignment, also called over-posting or autobinding, happens when an endpoint copies every field the request body names onto a stored object.

All tags, lifecycle stages and roles

Find your next answer

Type to search. Search runs in your browser.

Searches run in your browser, but the host can infer them from the index files they load. The address shows your search so you can bookmark or share it.