Skip to content

Version 7.5

Latest

Choose a tag to compare

@darold darold released this 29 Jun 10:37

2026-06-29 version 7.5

This version fixes some bugs reported by users since previous release
and especially multipart/form-data upload that was not scanned.

Full list of changes:

  • Add documentation FAQ about FTP uploads (STOR/put) hang with Squid native
    FTP proxy (ftp_port)
  • Add CI workflow file for regression tests.
  • Add test for PUT uploads that must be passed to squidclamav in REQMOD
    exactly like POST.
  • Multipart re-encoding. When the HTTP body is a multipart/form-data upload
    we hand it to clamd wrapped as an e-mail so that libclamav decodes the
    multipart and scans every embedded file. However libclamav reads e-mail
    bodies line by line and STRIPS NUL bytes while doing so. A raw binary
    part (an .exe, etc.) therefore reaches the scanner with all its NUL bytes
    removed, no longer matches any signature and the virus is missed.
    The fix rebuilds the multipart payload into a canonical MIME message
    whose part bodies are base64-encoded (Content-Transfer-Encoding: base64).
    base64 output is pure ASCII with no NUL bytes and is line-oriented, so it
    survives libclamav's line reader untouched; libclamav then base64-decodes
    each part back to the exact original bytes before scanning.
    Caveats: The rebuild reads the whole body into memory (bounded to existing
    maxsize/StreamMaxLength limits) and base64 adds ~37% size, so a multipart
    upload near StreamMaxLength could now hit that ceiling slightly sooner.
    Thanks to asterite3, ktran668959 and Yuri Voinov for the report.
  • Use MEDIUM_BUFF instead of LOW_BUFF for all URIs storage.
  • Fix configure prefix usage was missing in configure. Thanks to Lajos Gaspar
    for the patch.
  • Fix several memory allocation/free issues.