skills/binary-exploitation/arbitrary-write-2-exec/aw2exec-sips-icc-profile/SKILL.md
How to understand, test, and detect the macOS sips ICC profile out-of-bounds write vulnerability (CVE-2024-44236). Use this skill whenever the user mentions ICC profiles, sips vulnerability, CVE-2024-44236, macOS image processing exploits, heap corruption in color profiles, or needs to generate malicious ICC test files for security research. Also trigger for YARA rule creation for ICC anomalies, macOS security patching verification, or when analyzing embedded color profile attacks.
npx skillsauth add abelrguezr/hacktricks-skills sips-icc-oob-write-exploitInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A skill for understanding, testing, and detecting the out-of-bounds zero-write vulnerability in Apple's Scriptable Image Processing System (sips) ICC profile parser.
This skill helps you:
Run the bundled PoC generator to create a malicious ICC file:
python scripts/generate_evil_icc.py output/evil.icc
This creates a minimal ICC profile with the offsetToCLUT == tagDataSize condition that triggers the OOB write.
On a vulnerable macOS system (15.0.1, sips-307):
sips --verifyColor output/evil.icc
# or
sips -s format png payload.jpg --out out.png
⚠️ Warning: Only test on isolated, vulnerable systems you own. This can cause crashes or code execution.
The vulnerability is in the lutAToBType (mAB ) and lutBToAType (mBA ) tag handlers in sips-307:
if (offsetToCLUT <= tagDataSize) {
// BAD: zero 16 bytes starting at offsetToCLUT
for (uint32_t i = offsetToCLUT; i < offsetToCLUT + 16; i++)
buffer[i] = 0; // no bounds check!
}
When offsetToCLUT == tagDataSize, the parser writes 16 bytes past the allocated buffer.
offsetToCLUT == tagDataSizeUse the bundled YARA rule to detect malicious ICC profiles:
yara -r scripts/icc_mab_anomaly.yara /path/to/files/
The rule checks for:
acsp magic)mAB or mBA tagsoffsetToCLUT == tagDataSize conditionCheck if a system is patched:
# Check macOS version
sw_vers
# Check sips version (vulnerable: 307 on 15.0.1)
# Patched in 15.2 / 14.7.1+
Look for in unified log:
sips --verifyColor executionColorSync library loads by sandboxed appsexiftool -icc_profile= -overwrite_original <file>
python scripts/generate_evil_icc.py test1.icc
sips --verifyColor test1.icc # Should crash on vulnerable systems
# Create a test image with embedded malicious ICC
python scripts/embed_icc_in_image.py input.jpg test1.icc output.jpg
sips -s format png output.jpg --out out.png
yara scripts/icc_mab_anomaly.yara test1.icc
# Should match: ICC_mAB_offsetToCLUT_anomaly
icc-profile-analysis - Deep ICC profile parsing and analysismacos-heap-exploitation - nano_zone allocator exploitation techniquesyara-rule-creation - Writing detection rules for file-based attackstesting
How to perform a House of Lore (small bin attack) heap exploitation. Use this skill whenever the user mentions heap exploitation, small bin attacks, fake chunks, glibc heap vulnerabilities, or needs to insert fake chunks into small bins for arbitrary read/write. Trigger for CTF challenges involving heap corruption, glibc 2.31+ exploitation, or when the user needs to bypass malloc sanity checks using fake chunk linking.
testing
How to perform House of Force heap exploitation attacks. Use this skill whenever the user mentions heap exploitation, House of Force, top chunk manipulation, arbitrary memory allocation, malloc manipulation, or wants to allocate chunks at specific addresses. Also trigger for CTF challenges involving heap overflows, top chunk size overwrites, or when the user needs to calculate evil_size for heap attacks. Make sure to use this skill for any binary exploitation task involving glibc heap manipulation, even if they don't explicitly say "House of Force".
tools
How to perform House of Einherjar heap exploitation to allocate memory at arbitrary addresses. Use this skill whenever the user mentions heap exploitation, glibc heap attacks, arbitrary memory allocation, off-by-one overflow exploitation, tcache poisoning, fast bin attacks, or any CTF challenge involving heap manipulation. This is essential for binary exploitation tasks where you need to control malloc() return addresses.
testing
How to identify, analyze, and exploit heap overflow vulnerabilities in binary exploitation challenges and real-world scenarios. Use this skill whenever the user mentions heap overflows, memory corruption, heap grooming, tcache poisoning, fast-bin attacks, or any heap-related vulnerability in CTF challenges, binary analysis, or security research. This skill covers heap overflow fundamentals, exploitation techniques, heap grooming strategies, and real-world CVE analysis.