Re: CVE-2026-11460 - security flaw in serialization

Joaquin M López Muñoz via Boost <[email protected]> Tue, 23 Jun 2026 11:23:05 +0200
Newsgroups gmane.comp.lib.boost.devel
Message-ID <[email protected]>
El 23/06/2026 a las 10:07, Andrey Semashev via Boost escribió:
> On 23 Jun 2026 09:03, Rainer Deyke via Boost wrote:
>> On 6/22/26 23:59, Seth via Boost wrote:
>>> On Mon, Jun 22, 2026, at 11:12 PM, Chris Frey via Boost wrote:
>>>> I haven't seen mention of this on this list yet, so just passing it
>>>> along.
>>>>
>>>> Vulnerability page:
>>>>      https://vuldb.com/cve/CVE-2026-11460
>>>>
>>>> More details:
>>>>      https://gist.github.com/TrebledJ/b7c872f869b5ed7cbd936f71f16c7d75
>>> Isn't this by design and as documented?
>>>
>>> Boost Serialization does not have checksums/tampering protection.
>>> Basically, reading untrusted archives is a no-no because malformed
>>> archives lead to undefined behavior. I believe this is documented
>>> under some version compatibility paragraphs, and likely under the
>>> `archive_flags`?
>>>
>>> That's a limitation of the scope of the library, but not necessarily
>>> in application, because the protection/authentication can be built
>>> into a higher layer of the serialization that is based on Boost
>>> Serialization archives.
>> Using checksums for authentication, or indeed any authentication system
>> whatsoever, is quite problematic for serialization.  Data sanitation is
>> not an authentication problem, and no authentication may be possible.
>>
>> Imagine this scenario:
>>    - User A creates a file and uploads it onto the internet, without any
>> knowledge of who is going to consume the file.
>>    - User B downloads the file and loads it in program C, trusting the
>> security of program C to remain secure in the presence of untrusted data.
>>    - There are no shared secrets between A and B.  There are no public
>> keys.  These users do not know or trust each other at all.
>>
>> Somehow this scenario works for image files.  It works for HTML files.
>> It even more or less works for Javascript files, and Javascript is a
>> Turing-complete programming language.  But it does not work at all for
>> Boost.Serialization archives, and it cannot be made to work for
>> Boost.Serialization archives.
> I believe, it works in the same definition of "works" as for the other
> file types you mention. That is, the user B can download and use the
> archive, but he has no way of knowing whether the file he downloaded is
> the same as the one uploaded by user A. This includes possible tampering
> or unintentional corruption in transit. The user B also doesn't know
> whether the file he downloaded is safe to use. E.g. is the JavaScript
> safe to run? Does the image file have some embedded data that exploits a
> vulnerability in the image parsing library? etc.
>
> A parsing library, including Boost.Serialization, must be prepared for
> malformed content, though. If the downloaded archive is broken (i.e.
> invalid in terms of the archive format), Boost.Serialization must give
> the user an error when attempting to read it instead of crashing or
> corrupting memory. Requirements beyond that, I think, are out of scope
> for a deserialization library as they typically can't be fulfilled at
> the deserialization level.

100% agree. The only security-related requirement we should put on 
Boost.Serialization, and we should put it, is that no UB be generated on 
archive loading time.

Joaquín M López Muñoz

_______________________________________________
Boost mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://lists.boost.org/mailman3/lists/boost.lists.boost.org/
Archived at: https://lists.boost.org/archives/list/[email protected]/message/UQG7D4H6K3HHRPJWECRXDKRFHGAQ3KZW/