xlx db v2.4.3 SECURITY UPDATE - All files updated to fix vulnerabilities This release addresses multiple security vulnerabilities including XSS (Cross-Site Scripting), command injection, path traversal, and SSRF (Server-Side Request Forgery) attacks. Files Changed and Security Fixes: - "functions.php" * Added sanitize_output() and sanitize_attribute() helper functions for XSS prevention * Added validate_callsign(), validate_module(), validate_protocol() input validation functions * Replaced exec() call in GetSystemUptime() with secure file reading from /proc/uptime * Added input validation and shell argument escaping to VNStatGetData() * Added array bounds checking to ParseTime() to prevent errors on malformed input - "class.interlink.php" * Added input validation to SetName() - validates reflector name format * Added input validation to SetAddress() - validates IP addresses and hostnames * Added input validation to AddModule(), RemoveModule(), and HasModuleEnabled() - "class.node.php" * Added input validation in constructor for all parameters * IP addresses validated with filter_var() * Protocol validated against whitelist * Callsign format validated with regex * LinkedModule validated as single A-Z letter - "class.parsexml.php" * Added element name sanitization to prevent XML injection - "class.peer.php" * Added input validation in constructor for all parameters * Same validation as class.node.php for consistency - "class.reflector.php" * Added path traversal prevention to SetXMLFile(), SetPIDFile(), and SetFlagFile() * Added SSRF protection to CallHome() - blocks internal/private IP addresses * Added validation to ReadInterlinkFile() to prevent path traversal * Added XML entity encoding to PrepareInterlinkXML() and PrepareReflectorXML() * Added URL validation to SetCallingHome() * Added missing InterlinkCount(), GetInterlink(), and IsInterlinked() methods - "class.station.php" * Added input validation in constructor for all parameters * Callsign format validation * Module validation - "modules.php" * All output wrapped with sanitize_output() to prevent XSS - "peers.php" * All peer data output sanitized with sanitize_output() and sanitize_attribute() * URL and callsign outputs properly escaped - "reflectors.php" * All XML element data sanitized before output * Dashboard URLs and reflector names properly escaped - "repeaters.php" * Added input validation for filter parameters * All node/repeater data sanitized before output * Flag images and URLs properly escaped * IP addresses sanitized - "traffic.php" * Added strict whitelist validation for interface parameter * Interface names validated against configured list only - "users.php" * Added input validation for filter parameters * All station/user data sanitized before output * Callsigns, suffixes, and module names properly escaped - "index.php" * Added secure session configuration (HttpOnly, SameSite, Secure flags) * Added security headers (X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy) * Added whitelist validation for 'show' parameter * Added validation for 'do' and 'callhome' parameters * All configuration values sanitized before output to HTML * JavaScript injection prevented in page refresh code * All meta tags properly escaped Security Vulnerabilities Fixed: - XSS (Cross-Site Scripting) - All user input and XML data now properly escaped - Command Injection - Removed unsafe exec() calls, added shell argument escaping - Path Traversal - File paths validated and restricted to expected directories - SSRF (Server-Side Request Forgery) - CallHome validates URLs and blocks internal IPs - Session Hijacking - Added HttpOnly, SameSite, and Secure cookie flags - XML Injection - Element names sanitized, content stripped of tags xlx db v2.4.1 you can now hide the liveircddb menu button, if you are running your db in https. - "config.inc.php - "index.php" xlx db v2.4.0 - "config.inc.php" - "index.php" - "js" - "layout.css" xlx db v2.3.9 redesign for the callinghome.php - "config.inc.php" - "index.php" - "functions.php" xlx db v2.3.8 add support for network traffic statistics via vnstat. - "config.inc.php" - "index.php" - "functions.php" add traffic.php xlx db v2.3.7 add background color change on active page. - "config.inc.php" - "layout.css" - "index.php" xlx db v2.3.6 add xlx reflector version to calling home. - "config.inc.php" - "class.reflector.php" xlx db v2.3.5 now the page refresh is now suspended until you leave the filte fields. - "index.php" - "users.php" - "config.inc.php" xlx db v2.3.4 add filter function to the dashboard. It can be enabled or disabled via the config.inc.php - "index.php" - "users.php" - "config.inc.php" $PageOptions['UserPage']['ShowFilter'] added - "layout.css" xlx db v2.3.3 now displays always the correct module for the last heard station. db v2.3.3 requires xlxd v1.4.1 - "class.station.php" - "class.reflector.php" - "users.php" xlx db v2.3.2 add random id for nodes, to show the correct linked module for multiple nodes with the same call signe linked to different modules. - "class.node.php" - "class.reflector.php" - "users.php" xlx db v2.3.1 - "config.inc.php" $CallingHome['InterlinkFile'] added - "index.php" added support for interlink visualization - "class.reflector.php" callingHome redisigned for interlink visualization - "class.interlink.php" interlink visualization xlx db v2.2.3 - "config.inc.php" $CallingHome['HashFile'] and $CallingHome['OverrideIPAddress'] added - "index.php" supports new variables from config.inc.php - "class.reflector.php" supports new variables from config.inc.php - "country.csv " prefixes update xlx db v2.2.2 This version is a major release with voluntary self-registration feature build in. You need to edit the conf.inc.php to your needs. On the first run your personal hash to access the database is place in the server’s /tmp folder. Take care to make a backup of this file because this folder is cleaned up after a server reboot. This version is a major release xlx db v2.1.6 With this version of the dashboard, serveral parameters are free configurable. Changes are made in "config.inc.php" - "config.inc.php" - "index.php" - "users.php" - "peers.php - "repeaters.php" xlx db v2.1.5 - "class.node.php" added "get prefix - "repeaters.php" check for XRF or REF link - "country.csv " prefixes update + gate symbol - "flags" gate.png xlx db v2.1.4 - "class.reflector.php" improved the flag search - "country.csv" added serveral prefixes - "flags" added Puerto Ricco and Åland Islands xlx db v2.1.3 - "index.php" added support for multiradio repeaters - "users.php" added support for multiradio repeaters - "class.reflector.php" added support for multiradio repeaters - "repeaters.php" added suffix "D" for "dongle" xlx db v2.1.2 - "index.php" bugfix to correct an error if XLX name is equal to XLX000 xlx db v2.1.1 - "peers.php" added hyperlink to the peers ip address xlx db v2.1.0 - "index.php" button "Peers" added button "Repeaters/Nodes" shows now the number of connected devices moved XLX name, version and service uptime to improve view on mobile devices - "class.peer.php" added - "peers.php" added - "repeaters.php" limits nodes show up to 100 nodes xlx db v2.0.6 - "index.php" now reads out the XLX service uptime and not the server uptime - "country.csv" prefixes update - "class.reflector.php" flags showing improvements - "users.php" limits user show up to 40 users - "repeaters.php" limits nodes show up to 40 nodes xlx db v2.0.5 - "class.reflector.php" extra callsign checking