Hi Olly,

On Sun, Aug 16, 2026 at 09:57:33AM +1200, Olly Betts wrote:
> Package: libxapian30
> Version: 1.4.31-2
> Fixed: 1.4.32-1
> Severity: serious
> Tags: security
> Justification: potential security vulnerability
> X-Debbugs-Cc: Debian Security Team <[email protected]>
> 
> This was reported to upstream's public development list:
> 
> https://lists.xapian.org/pipermail/xapian-devel/2026-August/003429.html
> 
> The bug is missing HTML escaping, potentially allowing an attacker to inject
> unescaped data into generated HTML search results.  It's effectively a
> corner case missed when we fixed CVE-2018-0499.
> 
> It affects upstream releases 1.4.x for x <= 31 and 2.0.0.
> Upstream releases 1.4.32 and 2.0.1 include a fix, and I've already
> uploaded 1.4.32 to unstable and 2.0.1 to experimental.
> 
> There are patches here:
> 
> https://trac.xapian.org/wiki/SecurityFixes/2018-07-02#a2026-08-13update
> The actually fix is just this (the patches also add test coverage):
> 
> 
>      if (hi_start.empty() && hi_end.empty() && text.size() <= length) {       
>  
> -        // Too easy!
> -        return text;
> +        // The text is already short enough so we just need to perform
> +        // escaping.
> +        string output;
> +        append_escaping_xml(text.data(), text.data() + text.size(), output);
> +        return output;
>      }
> 
> The 4 variables in the condition are all parameters from the
> MSet::snippet() API call.  In order to be exploited, hi_start and hi_end
> need to be passed as empty strings (they have default values which
> aren't empty).  I'd expect most usage in a web context would want to
> highlight matching terms in the snippet and so it's probably uncommon to
> pass empty string here - I looked for an example of such usage with
> codesearch.d.n but didn't find anything.
> 
> However empty highlighting strings are a legitimate way to call this
> method, and I may have missed an instance, or such use may be present in
> code that hasn't been packaged for Debian.  Therefore I think we should
> apply this patch to stable.
> 
> I've already contacted the security team and they said we should handle
> this via a stable update.

FTR, I requested a CVE for this issue so we can properly track it as
separate CVE id.

Regards,
Salvatore

Reply via email to