How the 42Crunch API Security Testing Plugin Detects OWASP Vulnerabilities
The 42Crunch API Security Testing plugin detects OWASP vulnerabilities by transmitting OpenAPI specifications to the 42Crunch SaaS engine, which performs rule-based static analysis and runtime conformance testing to identify issues like BOLA and BFLA, returning findings explicitly mapped to OWASP API Security Top 10 categories.
The 42Crunch API Security Testing plugin brings enterprise-grade vulnerability detection directly into Claude Code by integrating with the 42Crunch security engine. According to the anthropics/claude-plugins-community repository, this plugin automatically surfaces OWASP API Security Top 10 issues through a combination of static OpenAPI analysis and dynamic runtime testing. The plugin's capabilities are defined in .claude-plugin/marketplace.json, which states that the tool "detects OWASP API vulnerabilities including BOLA and BFLA" and "combines static analysis of OpenAPI definitions with dynamic runtime testing."
Static Analysis via the 42Crunch Audit API
When a user invokes the audit command, the plugin extracts the OpenAPI (or Swagger) document from the prompt and transmits it to the 42Crunch SaaS endpoint /api/v1/audit. The 42Crunch engine parses the specification, constructs a comprehensive request-response model, and executes a rule-based static analysis against the OWASP API Security Top 10.
Each detection rule maps directly to a specific OWASP category. For example:
- BOLA (Broken Object Level Authorization) maps to API1‑2019
- BFLA (Broken Function Level Authorization) maps to API2‑2020
- Excessive Data Exposure maps to API3‑2021
The service returns a JSON payload containing a list of findings. Each finding includes:
- A severity score (critical, high, medium, low)
- The OWASP ID (e.g., "API1‑2019 – Broken Object Level Authorization")
- A short description of the vulnerability
- The affected path/method
- A remediation suggestion
Dynamic Conformance Testing for Runtime Validation
For live APIs, the plugin supports dynamic testing through the scan command defined in .claude-plugin/plugin.json. This command invokes 42Crunch's scan endpoint to perform runtime request/response validation against the OpenAPI specification.
The engine generates test requests based on the spec and analyzes the actual server responses. Any mismatches that could lead to authorization bypass, data leakage, or improper asset management are flagged and mapped to the corresponding OWASP entry. For instance, if a DELETE /accounts/{id} endpoint allows deletion without verifying resource ownership, the plugin flags this as API1‑2019 (BOLA) with critical severity.
AI-Assisted Remediation Workflow
After receiving the structured findings from the 42Crunch engine, the plugin formats the data into natural-language summaries that Claude uses to generate specific remediation code. Because each finding carries the explicit OWASP tag, the assistant can reference the relevant risk directly.
Consider a BOLA vulnerability identified on GET /users/{id}. The plugin surfaces this finding to Claude, which can then suggest an ownership check implementation:
app.get('/users/:id', async (req, res) => {
const user = await db.users.findById(req.params.id);
if (user.ownerId !== req.user.id) {
return res.status(403).json({ error: 'Forbidden' });
}
res.json(user);
});
Example Detection Outputs
The following interaction illustrates how the plugin presents static audit results with OWASP categorization:
**User:**
Please audit the OpenAPI spec for my service (see attached `openapi.yaml`).
**Claude (42Crunch plugin):**
Running a static security audit...
**Result:**
| OWASP ID | Severity | Endpoint | Issue |
|----------|----------|----------|-------|
| API1‑2019 (BOLA) | High | `GET /users/{id}` | Missing authorization check – any authenticated user can retrieve any user's data. |
| API2‑2020 (BFLA) | Medium | `POST /orders` | No function-level access control – any user can create orders on behalf of others. |
| API3‑2021 (Excessive Data Exposure) | Low | `GET /products` | Response includes fields that are not needed by the client. |
For live runtime testing, the scan command produces similar structured output:
**User:**
Run a live scan against my running API at `https://api.example.com`.
**Claude (42Crunch plugin):**
Executing runtime conformance tests...
**Result:**
| OWASP ID | Severity | Endpoint | Issue |
|----------|----------|----------|-------|
| API1‑2019 (BOLA) | Critical | `DELETE /accounts/{id}` | Server allowed deletion without verifying ownership. |
| API4‑2022 (Improper Assets Management) | Medium | `GET /static/*` | Unprotected static assets exposed. |
Summary
- The 42Crunch plugin sends OpenAPI specifications to the
/api/v1/auditendpoint for static analysis against OWASP rules. - Runtime testing uses the
scanendpoint to validate live API behavior and detect authorization bypasses. - Every finding includes an explicit OWASP ID (e.g., API1‑2019 for BOLA), severity rating, and remediation guidance.
- Configuration and capabilities are defined in
.claude-plugin/marketplace.jsonand.claude-plugin/plugin.json. - Findings are formatted into natural language with specific code remediation suggestions powered by Claude.
Frequently Asked Questions
Which specific OWASP vulnerabilities can the 42Crunch plugin detect?
The plugin detects the full OWASP API Security Top 10, including API1‑2019 (Broken Object Level Authorization/BOLA), API2‑2020 (Broken Function Level Authorization/BFLA), API3‑2021 (Excessive Data Exposure), and API4‑2022 (Improper Assets Management). As specified in .claude-plugin/marketplace.json, the engine specifically targets BOLA and BFLA through both static and dynamic analysis modes.
How does the plugin analyze APIs without accessing live endpoints?
When using the audit command defined in .claude-plugin/plugin.json, the plugin performs purely static analysis by parsing the OpenAPI specification and sending it to the 42Crunch /api/v1/audit endpoint. The security engine constructs a request-response model from the specification alone, identifying vulnerabilities like missing authorization checks or excessive data exposure without sending traffic to the actual API.
What data structure does the 42Crunch engine return for each vulnerability?
Each finding is returned as a JSON object containing a severity score (critical, high, medium, low), the specific OWASP ID (e.g., "API1‑2019"), a textual description, the affected path and HTTP method, and a remediation suggestion. This structured format enables Claude to generate precise, actionable fix recommendations with direct references to OWASP risk categories.
Where is the plugin configuration stored in the repository?
The plugin integration points and command definitions reside in .claude-plugin/plugin.json, while the public description, versioning, and capability statements (including OWASP detection claims) are located in .claude-plugin/marketplace.json. These files establish the available commands—audit, scan, and remediate—and link to the external 42Crunch security service.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →