Security×

295.ca Mail 2.0.0

Based on SquirrelMail 1.4.22 · Version 2.0.0 · Patch 96

Copyright (C) 1999-2026 The SquirrelMail Project Team. Hardened by Fibernetics for 295.ca Mail.

This page lists CVEs that affected stock SquirrelMail 1.4.x after the last upstream update (2011), and the Fibernetics hardening applied in 295.ca Mail 2.0.

Fibernetics hardening

ItemDetailStatus
CVE patch set (1.4.x post-2011)2.0.0Patched
Login JS and cookiesLogin disabled until both workEnabled
Session fixation resistancesession_regenerate_idEnabled
Clickjacking protectionX-Frame-Options + CSP frame-ancestorsEnabled
MIME sniffing protectionX-Content-Type-Options: nosniffEnabled
Cookie SameSiteSameSite=Lax on session/UI cookiesEnabled
Referrer-Policysame-originEnabled
PHP 7.4 and PHP 87.4 and 8.x (each(), offsets, __construct)Enabled
Classic frameset right_frameallowlist + htmlspecialcharsEnabled
Address book backend loadwhitelist (no eval)Enabled
HTML sanitizer extrassvg/math/video/audio/form strippedEnabled
Prefs prefval / CSRF capTEXT column; reuse 1h; cap 48Enabled
Classic faviconframeset parent onlyEnabled
Classic session watchleft frame onlyEnabled
mysqli preference backendmysqliEnabled
UI preference cookies (theme / Enhanced / Eyesaver)DB truth when logged inEnabled
CSRF tokens on UI togglessmtokenEnabled
Empty folder CSRFheader button + POST smtoken; folders from $sm_empty_folder_namesEnabled
Calendar v2 (Enhanced)month grid / day agenda / event form; same .cal files as Classic; CSRF on save/deleteEnabled
Eyesaver live toggleboth sheets loaded in Enhanced; switch without leaving the pageEnabled
IMAP password storagesession (not key cookie)Enabled
Remote-image CSPimg-src 'self' when images blockedEnabled
Download / session / image headerssm_security_headers()Enabled
Image viewer URL handlingknown GET params only (no QUERY_STRING)Enabled
TLS peer verify (optional)$sm_tls_verify_peerConfigurable
Compose link / HTML seed hardeningchrome-compose-editorEnabled
HTML compose inline imagesdrag-drop / insert; CID multipart/related on sendEnabled
Public security / CVE pagesecurity.php (login link)Enabled
About page (full)login requiredEnabled
PHP OPcacheenabledEnabled
APCu user cachenot availableNot available
SQL cache tablesm_cache tableAvailable
IMAP / SMTP TLS993 TLS; SMTP plain / STARTTLS / TLSConfigurable
Enhanced mode (optional UI)frameless chrome, Calendar v2, Eyesaver overlayAvailable
Eyesaver overlay CSSchrome.css + chrome-eyesaver.css (toggled in Enhanced)Available
Version2.0.0 patch 96Current
  • PHP 7.4 and PHP 8 compatibility (foreach not each(), string offsets, constructors, no ereg / curly-brace offsets / string assert)
  • Classic frameset right_frame allowlist + HTML escaping (no attribute breakout)
  • Address book backends instantiated from a fixed class whitelist (no eval)
  • HTML mail sanitizer also strips svg/math/video/audio/form containers
  • CSRF security tokens reused for an hour (Classic left-dock Enhanced switch stays valid on busy pages); prefval stored as TEXT
  • Favicon only on the frameset parent (Classic) plus login/security; not in every frame
  • Session idle watch in Classic left pane only (one poll; right pane waits for left refresh)
  • Login abuse controls: failed-attempt tracking, captcha gate, temporary IP lockout (badpeople); IP from REMOTE_ADDR unless behind configured trusted proxies
  • Session ID regeneration after successful authentication (session fixation resistance)
  • Clickjacking defenses: X-Frame-Options SAMEORIGIN, CSP frame-ancestors; JavaScript frame check on top-level pages (Classic frames rely on headers)
  • Browser headers: X-Content-Type-Options nosniff, Referrer-Policy same-origin, Permissions-Policy locked down
  • Session and UI cookies set SameSite=Lax (with Secure when HTTPS)
  • Login / redirect pages sent with no-cache headers
  • Secure preference storage via mysqli; theme paths validated before use
  • UI preference cookies for theme / Enhanced set with correct Path+Secure (server-side; login uses login_prefs.php)
  • Compose editor: link URLs restricted to http(s)/mailto; HTML seed sanitized; one modern editor for Classic and Enhanced
  • IMAP password stored in the PHP session (OTP-encrypted); no longer sent as a key cookie
  • Purge Trash uses POST with a CSRF token; Empty is a header button on folders listed in the config file (expunges that folder only, never child folders)
  • Calendar v2 in Enhanced Mode (month grid, day agenda, compact event form); Classic keeps the original calendar screens. Both use the same per-user .cal event files
  • Eyesaver overlay stylesheet is always loaded in Enhanced and toggled in place (no reload back to the inbox)
  • Login requires JavaScript and cookies (button stays off until both work; username/password are not remembered)
  • Message view CSP img-src 'self' when remote images are blocked
  • Security headers on attachment download, session probe, and image viewer
  • Attachment image viewer builds links from known parameters (no QUERY_STRING reflection)
  • Public security.php hardening / CVE page from the login screen; full About still requires login
  • Sendmail delivery hardened against shell metacharacters in From (CVE-2017-7692)
  • Attachment local names restricted to alphanumeric (CVE-2018-8741)
  • HTML mail sanitizer strips dangerous RCDATA/RAWTEXT containers (CVE-2019-12970)
  • Encoded e-mail header display always HTML-escaped for UI output (CVE-2025-30090)
  • Request cache: OPcache warmup, APCu, MySQL sm_cache; folder list still falls back to the session then IMAP
  • Enhanced mode modern UI (optional) with theme-driven colours, phone/tablet layout, Calendar v2, Eyesaver, and asset cache busting
  • Removed outdated stock SquirrelMail features (see About section) to simplify Options and cut dead code

Security patches (CVE)

Patched+Hardened by Fibernetics

CVEPublishedIssueStatus
CVE-2025-300902025-04-02XSS via e-mail headers in mime.php (encoded header leftover mishandled)Patched
CVE-2019-129702019-07-01XSS via RCDATA/RAWTEXT HTML elements (noscript/noembed/textarea/etc.)Patched
CVE-2018-149552019-02-26XSS (part of multiple message-display filter issues)Patched
CVE-2018-149542019-02-26XSS (part of multiple message-display filter issues)Patched
CVE-2018-149532019-02-26XSS (part of multiple message-display filter issues)Patched
CVE-2018-149522019-02-26XSS (part of multiple message-display filter issues)Patched
CVE-2018-149512019-02-26XSS (part of multiple message-display filter issues)Patched
CVE-2018-149502019-02-26XSS (part of multiple message-display filter issues)Patched
CVE-2018-87412018-04-04Attachment directory traversal / local file disclosurePatched
CVE-2017-76922017-04-24Remote code execution via sendmail envelope-from injectionPatched
CVE-2011-27532011-07-11CSRF / preference manipulation vectorsPatched
CVE-2011-27522011-07-11XSS in message / preference related pagesPatched
CVE-2010-45552011-07-11Multiple XSS vulnerabilitiesPatched
CVE-2011-20232011-07-10XSS via crafted STYLE elements in messagesPatched
CVE-2010-45542011-07-12Clickjacking (framing the webmail UI)Patched
CVE-2012-03232012-03-09Autocomplete plugin XSSN/A - plugin not installed
CVE-2020-149332021-10-15Reported unserialize() issue - marked INVALID by upstreamNot applicable