Skip to content

Commit 876398d

Browse files
committed
automatic module_metadata_base.json update
1 parent 31cf0e2 commit 876398d

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

db/modules_metadata_base.json

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22561,6 +22561,74 @@
2256122561

2256222562
]
2256322563
},
22564+
"auxiliary_gather/jenkins_cli_ampersand_arbitrary_file_read": {
22565+
"name": "Jenkins cli Ampersand Replacement Arbitrary File Read",
22566+
"fullname": "auxiliary/gather/jenkins_cli_ampersand_arbitrary_file_read",
22567+
"aliases": [
22568+
22569+
],
22570+
"rank": 300,
22571+
"disclosure_date": "2024-01-24",
22572+
"type": "auxiliary",
22573+
"author": [
22574+
"h00die",
22575+
"Yaniv Nizry",
22576+
"binganao",
22577+
"h4x0r-dz",
22578+
"Vozec"
22579+
],
22580+
"description": "This module utilizes the Jenkins cli protocol to run the `help` command.\n The cli is accessible with read-only permissions by default, which are\n all thats required.\n\n Jenkins cli utilizes `args4j's` `parseArgument`, which calls `expandAtFiles` to\n replace any `@<filename>` with the contents of a file. We are then able to retrieve\n the error message to read up to the first two lines of a file.\n\n Exploitation by hand can be done with the cli, see markdown documents for additional\n instructions.\n\n There are a few exploitation oddities:\n 1. The injection point for the `help` command requires 2 input arguments.\n When the `expandAtFiles` is called, each line of the `FILE_PATH` becomes an input argument.\n If a file only contains one line, it will throw an error: `ERROR: You must authenticate to access this Jenkins.`\n However, we can pad out the content by supplying a first argument.\n 2. There is a strange timing requirement where the `download` (or first) request must get\n to the server first, but the `upload` (or second) request must be very close behind it.\n From testing against the docker image, it was found values between `.01` and `1.9` were\n viable. Due to the round trip time of the first request and response happening before\n request 2 would be received, it is necessary to use threading to ensure the requests\n happen within rapid succession.\n\n Files of value:\n * /var/jenkins_home/secret.key\n * /var/jenkins_home/secrets/master.key\n * /var/jenkins_home/secrets/initialAdminPassword\n * /etc/passwd\n * /etc/shadow\n * Project secrets and credentials\n * Source code, build artifacts",
22581+
"references": [
22582+
"URL-https://www.jenkins.io/security/advisory/2024-01-24/",
22583+
"URL-https://www.sonarsource.com/blog/excessive-expansion-uncovering-critical-security-vulnerabilities-in-jenkins/",
22584+
"URL-https://github.com/binganao/CVE-2024-23897",
22585+
"URL-https://github.com/h4x0r-dz/CVE-2024-23897",
22586+
"URL-https://github.com/Vozec/CVE-2024-23897",
22587+
"CVE-2024-23897"
22588+
],
22589+
"platform": "",
22590+
"arch": "",
22591+
"rport": 8080,
22592+
"autofilter_ports": [
22593+
80,
22594+
8080,
22595+
443,
22596+
8000,
22597+
8888,
22598+
8880,
22599+
8008,
22600+
3000,
22601+
8443
22602+
],
22603+
"autofilter_services": [
22604+
"http",
22605+
"https"
22606+
],
22607+
"targets": null,
22608+
"mod_time": "2024-03-28 15:54:58 +0000",
22609+
"path": "/modules/auxiliary/gather/jenkins_cli_ampersand_arbitrary_file_read.rb",
22610+
"is_install_path": true,
22611+
"ref_name": "gather/jenkins_cli_ampersand_arbitrary_file_read",
22612+
"check": true,
22613+
"post_auth": false,
22614+
"default_credential": false,
22615+
"notes": {
22616+
"Stability": [
22617+
"crash-safe"
22618+
],
22619+
"Reliability": [
22620+
22621+
],
22622+
"SideEffects": [
22623+
22624+
]
22625+
},
22626+
"session_types": false,
22627+
"needs_cleanup": false,
22628+
"actions": [
22629+
22630+
]
22631+
},
2256422632
"auxiliary_gather/jenkins_cred_recovery": {
2256522633
"name": "Jenkins Domain Credential Recovery",
2256622634
"fullname": "auxiliary/gather/jenkins_cred_recovery",

0 commit comments

Comments
 (0)