Deleted Database Records Remain Recoverable in SQLite Files Despite DELETE Operations
A routine request to delete personal data often ends with a simple DELETE FROM clients WHERE id = ... command. The application reports success because the row disappears from query results and exports. However, the underlying database file still contains the full record, including names and card numbers, which can be recovered with basic tools such as grep.
SQLite behavior and the secure_delete pragma
SQLite marks the page containing the deleted row as free for reuse but does not overwrite its contents when secure_delete is set to 0. The following sequence demonstrates the problem: a database is created with 200 rows, 46 rows are deleted, and the table reports only 154 remaining rows. Searching the file nevertheless finds the deleted name and card number.
The pragma secure_delete = 1 forces the database engine to overwrite freed space with zeros at the moment of deletion. The same search then returns zero matches. The default value depends on the compile-time flag SQLITE_SECURE_DELETE, which varies across distributions and platforms. Therefore the same application can behave differently on a server, in a mobile build, or on a desktop client.
Other database systems exhibit similar issues
- PostgreSQL marks row versions as dead; physical removal occurs only during VACUUM or VACUUM FULL. Write-ahead logs also retain previous page versions.
- MySQL with InnoDB releases pages without overwriting them and keeps historical values in undo logs and the binary log.
In every major system, executing DELETE is not equivalent to erasing the data from storage media.
Real-world impact on data protection obligations
Companies responding to deletion requests typically confirm only that the row is absent from the live table. When a database file is later seized or leaked, previously deleted records remain readable. Backup copies created before the deletion continue to hold the data for their entire retention period. Replicas used for reporting and analytics frequently receive the record in a daily export and keep it indefinitely. Mobile application database dumps sent to support teams commonly contain every record the user ever deleted.
Recommended controls
For SQLite, enable immediate overwriting with PRAGMA secure_delete = ON and run VACUUM after large deletions. For server databases, the only reliable approach is to encrypt sensitive fields with a key that is destroyed when deletion is requested; old backups then become unreadable. Organizations should also store less data, enforce retention periods directly in the schema, and include backups, replicas, and analytics exports in every deletion procedure.
Related articles
Hydrat Project Builds Automated WireGuard Gateway for Resilient VLESS and Tor Routing
A developer has released Hydrat, a self-hosted gateway that connects devices via WireGuard while automatically managing VLESS and Tor backends to survive server blocks and quality degradation. The system maintains a pool of tested proxies, performs continuous health checks, and switches routes without requiring client-side profile changes. Two Go processes handle control logic and network enforcement separately, using SQLite for state and nftables plus Xray for traffic routing. TCP and UDP can be assigned independent exits, with geoip.dat support and custom rules to keep marketplace apps functional. The project emphasizes stability over direct connections and is designed for deployment on servers in Russian jurisdiction.
OpenAI Contractors Manually Review Real User Chats in Project Lily
OpenAI has engaged hundreds of external contractors to analyze actual user conversations with ChatGPT as part of its model improvement efforts. The reviewers, working under project Lily, examine real queries that may contain personal, medical, or other sensitive information despite the use of a Privacy Filter. Contractors summarize prompts, compare four model responses, and assign ratings from one to seven while flagging behaviors such as excessive sycophancy or inappropriate emojis. User identities are hidden and some data is filtered, yet OpenAI acknowledged that not all personal information is reliably removed. The same human review process is also employed by Anthropic for its Claude model. Users can opt out of future training use through account settings, although prior data remains unaffected.
UDP Proxies and QUIC Protocol: How Real IP Addresses Leak Through Anti-Detect Browsers
Anti-detect browser users relying on UDP-capable proxies face a hidden risk of real IP leakage when the browser fails to properly route UDP traffic. The QUIC protocol, which powers HTTP/3, runs over UDP and enables features like 0-RTT handshakes, independent streams, and connection migration that can bypass proxy routes. WebRTC connections using ICE, STUN, and TURN further increase exposure because they often attempt direct UDP paths outside the configured SOCKS5 proxy. Without deep network stack control such as TUN interfaces or socket interception, browsers may send WebRTC and QUIC packets through the host's real network interface. Aurorium Browser claims to solve this by natively supporting UDP proxying so that both QUIC and WebRTC traffic stays inside the tunnel. The article stresses that simply disabling WebRTC or forcing HTTP/2 fallback is insufficient and can itself create detectable anomalies for anti-fraud systems.
Google to Offer Granular Controls for Advanced Protection Mode in Android 16
Google is preparing more flexible settings for its Advanced Protection security mode that first appeared in Android 16. The changes were discovered by Android Authority researchers while examining Google Play Services version 26.36.30. A new Expert features section will let users enable individual protections such as USB Protection, intrusion detection logging, and restrictions on unsafe Wi-Fi networks without activating the entire strict mode. USB Protection blocks new USB connections while the screen is locked to prevent physical attacks, though it can interfere with fast charging on Pixel 6 and newer devices. Users will also be able to opt out of automatic connections to open or risky Wi-Fi networks if they regularly use public hotspots. Intrusion Logging remains optional and stores encrypted security logs in the cloud. The update aims to preserve core security benefits while removing the all-or-nothing requirement of the current Advanced Protection implementation.