{
  "schema_version": "1.6.0",
  "id": "CLR-2026-3028",
  "modified": "2026-07-10T20:00:00Z",
  "published": "2026-07-10T20:00:00Z",
  "summary": "Unauthenticated SQL Injection in the WordPress plugin Aeroscroll Gallery (1.0.13)",
  "details": "Aeroscroll Gallery (WordPress.org, version 1.0.13) Aeroscroll Gallery (1.0.13) exposes an unauthenticated WordPress REST route (aeroscroll/v1) whose handler builds a SQL query by string concatenation. A numeric guard is applied to one request parameter, but a second, unguarded parameter is concatenated into the query, so an unauthenticated request can inject SQL and read arbitrary database contents (WordPress user password hashes, secrets). No fixed release is available.",
  "affected": [
    {
      "package": {
        "ecosystem": "WordPress",
        "name": "Aeroscroll Gallery"
      },
      "versions": [
        "1.0.13"
      ]
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://research.codelake.dev/advisories/clr-2026-3028"
    }
  ],
  "credits": [
    {
      "name": "Sascha Klein, codelake Research",
      "type": "FINDER",
      "contact": [
        "https://research.codelake.dev"
      ]
    }
  ],
  "database_specific": {
    "caseId": "CLR-2026-3028",
    "kind": "vuln",
    "class": "SQL Injection (CWE-89)",
    "severity": "Critical",
    "status": "Disclosed",
    "detail_embargoed_until": "2026-08-24",
    "iocs": {
      "ips": [],
      "hashes": [
        "sha256:8e0528f6ab8e94e1b79b0dd5a790d0ed6fa8c5389d86568872e8c0ef8ef03ca2"
      ],
      "indicators": [
        "Aeroscroll Gallery 1.0.13 (WordPress.org) — wordpress.org/plugins/aeroscroll-gallery",
        "8e0528f6ab8e94e1b79b0dd5a790d0ed6fa8c5389d86568872e8c0ef8ef03ca2 (artifact)",
        "CWE-89 SQL Injection · sanitize_text_field() used as an (ineffective) SQL neutraliser",
        "No authentication required · no nonce · no capability check"
      ]
    }
  }
}