Disclosure Ledger

A transparent, updated record of vulnerabilities discovered through Scan for Good, validated by Wiz Research, and responsibly remediated in partnership with affected organizations.

Scan for Good disclosure ledger
#FindingTokensClassSeverityMinCost
1CI/CD secrets serialized into production JavaScript bundles~1.0MSupply chainCritical6.0~$1.5
2Supply-chain RCE via JavaScript bundle to container-registry poisoning~400MSupply chainCritical18.0~$100
3GraphQL authorization bypass on a service-management platform~1.0MBroken access controlHigh14.0~$1.5
4Subdomain takeover enabling session-cookie theft~1.0MSubdomain takeoverHigh1.8~$1.5
5Complete security-operations platform exposure affecting thousands of records~1.0MBroken access controlCritical7.0~$1.5
6Unauthenticated machine-token endpoint opening an enterprise operations platform~400MBroken access controlCritical63.0~$100
7Pre-authentication RCE through React Server Components deserialization~1.0MRCECritical2.5~$1.5
8Research-platform installer and full database-schema exposure~1.0MInfo disclosureHigh8.0~$1.5
9PHP type-juggling authentication bypass on a production ordering platform~1.0MAuth bypassCritical17.0~$1.5
10Full-read SSRF reaching payment credentials and the internal network~400MSSRFCritical42.0~$100
11Azure SSO bypass chained with SQL injection to obtain full administrator access~400MSQL injectionCritical40.0~$100
12Boolean-blind SQL injection used to extract database credentials~1.0MSQL injectionCritical15.0~$1.5
13Exposed .git directory containing production database credentials~1.0MInfo disclosureCritical10.3~$1.5
14Firebase Admin SDK key granting full project IAM access~1.0MSecrets exposureCritical11.5~$1.5
15Admin API key granting write and delete access to millions of archived files~1.0MSecrets exposureCritical6.0~$1.5
16Unauthenticated REST API exposing tens of thousands of personal records~1.0MBroken access controlCritical9.0~$1.5
17WordPress batch-route confusion leading from SQL injection to administrator credential extraction~1.0MSQL injectionCritical20.0~$1.5
18JWT validation declared but never enforced on a decision-support system~1.0MAuth bypassCritical5.0~$1.5
19No authorization layer beneath the authentication gate on a physical access-control system~400MBroken access controlCritical229~$100
20A lead form sent applicant details to an unregistered API domain, allowing a new registrant to intercept sensitive submissions.~20.4MDangling domainHigh18.7~$8.59
21An admin CMS proxy treated a spoofable Origin header as authentication, exposing employee records and database schema without a login.~11.4MAuthentication bypassHigh17.1~$5.16
22A record-service gateway returned data for arbitrary object IDs without ownership checks, enabling bulk extraction of sensitive customer records.~45.2MBroken access controlCritical20.0~$24.36
23A production CMS allowed anonymous signup into a trusted role, giving new users access to the internal directory and durable write access to published content.~92.5MPrivilege escalationHigh9.6~$28.10
24A Laravel API route sat outside the authentication middleware, exposing a bulk database export and affiliate credentials without a login.~20.4MMissing authenticationHigh18.7~$8.59
25A record service returned names and addresses even when records carried a privacy flag intended to suppress them.~1.0MSensitive data exposureHigh5.0~$1.5
26A directory API exposed thousands of member and guardian records; masked list fields could be recovered through item lookups and query behavior.~1.0MSensitive data exposureHigh5.0~$1.5
27A safety-reporting API was hidden behind an admin-only interface but left its search and record routes unauthenticated, exposing personnel details.~1.0MMissing authenticationHigh5.0~$1.5
28A legacy project exporter ignored the OAuth check added to its replacement, exposing unpublished workbooks and researcher PII by numeric ID.~1.0MMissing authenticationHigh5.0~$1.5
29A document-download API converted pipe characters into paths but never canonicalized them, allowing anonymous traversal outside the intended directory.~1.0MPath traversalHigh5.0~$1.5
30A configuration API omitted service authentication on three routes and returned its full RBAC directory of users and roles.~1.0MMissing authenticationHigh5.0~$1.5
31Two GIS services used for operational mapping allowed create, update, delete, upload, and sync actions without authentication.~1.0MBroken access controlHigh5.0~$1.5
32A membership portal relied on a browser widget for access control, while JSON, search, and direct-document routes remained open on the server.~1.0MClient-side access controlHigh5.0~$1.5
33A calendar export accepted query operators instead of a single event ID, allowing bulk download of meetings restricted to the member portal.~1.0MBroken access controlHigh5.0~$1.5
34An AI inference server protected only its versioned routes; root-level compatibility endpoints reached the same model without the required API key.~1.0MAuthentication bypassHigh5.0~$1.5
35An account-renewal route minted signed JWTs from sequential renewal IDs without a prior session, handing out tokens for other accounts.~1.0MAuthentication bypassHigh5.0~$1.5
36A case-search toolbar exposed restricted records through a convenience endpoint that skipped the role check enforced by the dedicated API.~1.0MBroken access controlHigh5.0~$1.5
37An attachment-download API streamed documents by sequential ID without checking record restrictions, exposing files the normal search intentionally hid.~1.0MBroken access controlHigh5.0~$1.5
38A dataset search concatenated user text into Solr, and a join query bypassed the isPublic filter to reveal unpublished packages.~1.0MQuery injectionHigh5.0~$1.5
39A work-management GeoJSON route lacked the JWT middleware used by sibling routes, exposing internal work orders through saved filter IDs.~1.0MMissing authenticationHigh5.0~$1.5
40Three configuration routes skipped service authentication and returned user accounts, organizational contacts, role assignments, and GIS credentials.~1.0MMissing authenticationHigh5.0~$1.5
41A PDF proxy blocklisted hostnames but followed redirects, letting an attacker pivot the server into internal URLs and store the response as an externally readable file.~1.0MSSRFHigh5.0~$1.5
42A service trusted a client-supplied origin and client code as authentication, exposing employee and customer accounts through anonymous lookup routes.~1.0MAuthentication bypassHigh5.0~$1.5
43A contact-directory API marked one route as skip-auth, exposing personnel records across tenants by iterating short organization codes.~1.0MMissing authenticationHigh5.0~$1.5
44A CMS still accepted the vendor's default OAuth client secret, issuing 30-day API tokens to anyone who knew the documented defaults.~1.0MWeak credentialsHigh5.0~$1.5
45A document route served files by numeric ID without checking the visibility flag or whether the related record had been published.~1.0MBroken access controlHigh5.0~$1.5
46A staff-directory service checked whether a page was readable but not whether it was a directory, exposing internal and cross-tenant employee profiles.~1.0MBroken access controlHigh5.0~$1.5
47A training-media embed API trusted only the Referer header and sequential video IDs, allowing restricted content to be enumerated and played off-site.~1.0MBroken access controlHigh5.0~$1.5
48A content site embedded a working GIS service username and password in page configuration sent to every anonymous visitor.~1.0MCredential exposureHigh5.0~$1.5
49One asset-renewal controller was missing the authorization attribute used by every neighboring controller, exposing fleet inventory without a token.~1.0MMissing authenticationHigh5.0~$1.5
50A backend PDF route ignored the redaction checks in the main controller and generated unredacted disclosures containing protected personal information.~1.0MBroken access controlCritical5.0~$1.5

Showing 1–50 of 94 findings