Skip to main content
Feature Release

Rspamd 3.14.1

Minor Release with Composites Optimization, URL Deep Processing, and lua_shape Migration

Added

  • Composites optimization: Inverted index with bloom filter for fast negative symbol lookups, precomputed atom types, and composites statistics with control protocol command (#5764)
  • Multimap combinators: Support for combinator option in multimap selector rules for flexible matching logic (#5766)
  • SPF flattening tool: New rspamadm utility for SPF record flattening with macro preservation (#5757)
  • URL deep processing: Architecture for C-to-Lua URL filter consultation with async HTML URL processing (#5748)
  • Obfuscated URL detection: Enhanced url_suspect plugin with rspamd_util.decode_html_entities for detecting obfuscated URLs (#5761)
  • lua_shape validation: New validation library replacing tableshape with T.callable() type and callable defaults support (#5754)
  • Whitelist symbol flags: Auto-mark whitelist symbols with SYMBOL_TYPE_FINE flag for better scoring granularity

🔧 Fixed

  • url_suspect false positives: Fix plugin causing massive false positives with high URL volume messages (#5758)
  • Network chunking loop: Prevent infinite loop in split_networks_into_chunks() function (#5763)
  • Memory leak: Fix leak in custom tokenizer result handling
  • lua_shape compatibility: Multiple fixes for transform logic, registry resolution, error safety, and tableshape compatibility (#5754)
  • Composites inverted index: Fix group matchers handling and improve atom polarity detection (#5764)
  • Lua composites: Copy expression string to memory pool to prevent use-after-free (#5764)
  • D3 libraries: Update with bug fixes and validation improvements (#5765)
  • Settings processing: Keep groups_*/symbols_* fields in settings for runtime processing
  • Redirect URL encoding: Properly encode URLs with unencoded spaces and special characters (#5748)
  • WebUI hover: Restore hover colors for symbols and fix hover behavior outside status tables (#5741, #5742)
  • External relay: Fix mixins and confighelp for external_relay module (#5754)

🔄 Improved

  • url_suspect performance: Optimize plugin for high URL volume messages with better deduplication (#5758)
  • tableshape migration: Complete migration of all plugins and libraries from tableshape to lua_shape (#5754)
  • Configuration simplification: Remove use_*_map flags and simplify URL processing configuration (#5748)
  • Whitelist maps: Use contemporary API for maps in whitelist module (#5746)
  • WebUI symbols: Improved hover colors and behavior for symbols display (#5760)
  • Plugins registry: Centralized plugins registry with reworked mixins and documentation (#5754)

This minor release focuses on performance improvements and code modernization. The composites optimization with inverted index and bloom filter significantly speeds up composite rule evaluation. The new lua_shape library replaces the external tableshape dependency with a more integrated solution. URL processing has been enhanced with deep processing architecture and better obfuscated URL detection. Several critical bugs have been fixed including url_suspect false positives and an infinite loop in network processing.