Skip to content

Releases

APILeak v1.0.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 19:07

APILeak v1.0.0 — MCP Server + AI Integration

This is the first production-stable release of APILeak, adding a full Model Context Protocol (MCP) server that exposes every scan capability as a tool invocable by AI agents (Claude Desktop, Kiro, custom LLM workflows).

What's New

MCP Server (apileaks mcp-server)

  • 16+ MCP tools — every CLI command exposed as a typed, schema-validated MCP tool
  • stdio transport — connect Claude Desktop, Kiro, or any MCP client with a single config line
  • HTTP/SSE transport — persistent server with Bearer token auth and optional TLS
  • Destructive Confirmation Gate — AI cannot execute destructive scans without a human ConfirmationToken
  • Append-only audit log — every tool invocation logged as JSON Lines (OWASP MCP08)
  • Rate limiting + timeouts — 60 req/min per client, 300s max per tool (OWASP MCP05)
  • Tool manifest hash — SHA-256 of registered tools logged at startup (OWASP MCP03)
  • All 10 OWASP MCP Top 10 controls implemented

AI Assistance (apileaks[ai])

  • --ai-triage — LLM-powered finding prioritisation (Anthropic / OpenAI / Amazon Bedrock)
  • --ai-dedup — semantic deduplication of overlapping module findings
  • Graceful degradation — AI errors never fail the scan

Offensive MCP Auditing (apileaks mcp-audit)

  • Tool poisoning detection (hidden prompt instructions in descriptions)
  • SSRF probing via URL-accepting tools
  • Missing confirmation gate check on destructive tools
  • Credential leak detection in tool responses

Docker

  • Dockerfile.mcp — dedicated MCP server image (Alpine, non-root, hash-verified deps)
  • docker compose --profile mcp up — one command to start the full stack
  • docker compose --profile mcp-audit up — security self-audit in Docker

Documentation & GitHub Pages

Installation

# MCP server only
pip install 'apileaks[mcp]'

# MCP + AI triage/dedup (Anthropic + OpenAI)
pip install 'apileaks[mcp,ai]'

# MCP + AI + Amazon Bedrock
pip install 'apileaks[mcp,ai,aws]'

Quick Start

# Connect to Claude Desktop or Kiro (stdio)
apileaks mcp-server --transport stdio

# HTTP server
export APILEAKS_MCP_AUTH_TOKEN=$(python -c "import secrets; print(secrets.token_urlsafe(32))")
apileaks mcp-server --transport http --port 8080

# Docker
APILEAKS_MCP_AUTH_TOKEN=secret docker compose --profile mcp up

Security Self-Audit

The MCP server passes its own apileaks mcp-audit security check on every release (dogfooding). Results are attached as a workflow artifact.

See the full MCP Security documentation for OWASP MCP Top 10 control details.


Full Changelog: v0.3.0...v1.0.0

apileaks v0.3.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 23:23

Instalación

pip / uv (recomendado):

pip install apileaks
uv tool install apileaks
pipx install apileaks

Kali Linux / Parrot OS / Debian / Ubuntu:

wget https://github.com/MoisesTapia/apileaks/releases/download/v0.3.0/apileaks_*.deb
sudo dpkg -i apileaks_*.deb
sudo apt-get install -f

macOS (Homebrew):

brew tap MoisesTapia/apileaks
brew install apileaks

apileaks v0.2.2

Choose a tag to compare

@MoisesTapia MoisesTapia released this 08 Jul 02:54

v0.2.2 - JWT Algorithm Confusion SSH key support & HTTP engine fix

New Features:

  • SSH public key support for algorithm confusion attacks (ssh-rsa, ecdsa-sha2)
  • Automatic detection and loading of OpenSSH key format without manual PEM conversion
  • SSH key variants (ssh_original, ssh_serialized) tried first as HMAC secrets
  • Response body displayed when content length differs from baseline

Bug Fixes:

  • Fixed HTTPRequestEngine passing empty params={} to httpx which corrupted
    URLs containing query strings (caused 400 Bad Request on Flask/Werkzeug servers)
  • Improved response analyzer to detect same-status-code vulnerabilities when
    response body changes significantly (common in CTF/lab environments)

Improvements:

  • Reordered algorithm confusion key variants for faster exploitation
  • Better vulnerability detection confidence scoring for content-based analysis

apileaks v0.2.1

Choose a tag to compare

@github-actions github-actions released this 07 Jul 04:21

This release ships a complete JWT security testing toolkit, both as a standalone CLI and as the owasp auth automated scanner (OWASP API2 — Broken Authentication).

JWT CLI (apileaks jwt)
A dedicated jwt command group with the following subcommands:

Command Description
jwt decode Decode any JWT and display header, payload, and signature
jwt encode Encode a new token with custom header/payload (HS256 or RSA)
jwt verify Verify a token signature against a secret, key file, PEM, or JWKS
jwt genkey Generate RSA or EC keypairs for testing
jwt jwks-to-key Reconstruct a PEM public key from a JWKS endpoint
jwt brute-secret Brute-force weak HMAC secrets against a wordlist
jwt test-alg-none Probe endpoints for alg:none acceptance (signature bypass)
jwt test-null-signature Probe for null/empty signature acceptance
jwt test-alg-confusion RS256 → HS256 algorithm confusion attack using the server's public key
jwt test-kid-injection kid header injection (path traversal / SQL injection payloads)
jwt test-jwks-spoof Spoof a jku / x5u header to point to attacker-controlled JWKS
jwt test-inline-jwks Embed a self-signed JWKS inline in the token header
jwt attack-test Run all attack vectors sequentially against a target endpoint and save full report

Automated detection (owasp auth --jwt-testing)
The owasp auth module now detects the following JWT findings automatically:

JWT_WEAK_SECRET — HMAC secret brute-forced against a bundled wordlist (severity: HIGH)
JWT_NONE_ALGORITHM — endpoint accepts a token with alg:none (severity: CRITICAL)
JWT_NO_EXPIRATION — token is issued without an exp claim (severity: HIGH)
JWT_EXPIRED_TOKEN_ACCEPTED — endpoint accepts a token past its expiration (severity: HIGH)
JWT_TOKEN_NOT_INVALIDATED_AFTER_LOGOUT — token remains valid after calling the logout endpoint (severity: HIGH)
JWT_ALGORITHM_CONFUSION — RS256 public key used as HMAC secret to forge a valid HS256 token (severity: CRITICAL)
JWT_MISSING_EXP_CLAIM / JWT_MISSING_ISS_CLAIM / JWT_MISSING_AUD_CLAIM / JWT_MISSING_JTI_CLAIM — static claim hygiene checks
JWT_EXCESSIVE_TOKEN_LIFETIME — token lifetime exceeds the configured threshold
ECDSA Psychic Signature (CVE-2022-21449) — null r=0, s=0 signature probe for ES256/384/512
Crypto support
HMAC: HS256, HS384, HS512
RSA: RS256, RS384, RS512, PS256, PS384, PS512
ECDSA: ES256 (P-256), ES384 (P-384), ES512 (P-521)
JWK reconstruction from JWKS endpoints (RSA and EC)
PEM/DER key loading with certificate fallback