Hi Sergio,

On Thu, Oct 29, 2026 at 08:52:40PM -0400, Sergio Durigan Junior wrote:
> Control: forwarded -1 https://gitlab.com/Seeker4/OSCAR-code/-/work_items/360
> 
> On Tuesday, 27 October 2026, Helmut Grohne wrote:
> 
> > oscar builds a vendor copy of botan. This is problematic on several
> > levels. The Debian policy discourages embedded code copies and this
> > makes it a normal bug. A vulnerability in botan (which is a crypto
> > library after all) has to be fixed several times. Worse, one has to
> > figure out which packages include such a copy. Therefore, we keep a
> > record at
> > https://salsa.debian.org/security-tracker-team/security-tracker/-/blob/master/data/embedded-code-copies.
> > Notably, oscar is not listed here. The botan version included in oscar
> > is very old. It is very likely affected by a number of vulnerabilities
> > fixed in newer versions, see
> > https://security-tracker.debian.org/tracker/source-package/botan.
> 
> Thank you for the heads up.
> 
> I noticed that botan has been removed from the archive and is only
> available on stable, so it seems like replacing it with the system copy
> isn't feasible for unstable.

botan issued a major version a while ago. The botan source package
remained with 2.x while a new source package botan3 provided the new
version. It is only the 2.x series that has been removed from unstable.

Likely switching to botan3 involves some porting effort, but at this
time I expect 3.x to have stabilized. I don't think anyone is doing
security support for 2.x anymore.

> I've just filed an upstream issue letting them know about the situation
> with botan; let's see how it goes.

Thank you!

> > Beyond this, I attempted to cross build oscar and found that when
> > building it for s390x, it would fail with "error: writing 1 byte into a
> > region of size 0 [-Werror=stringop-overflow=]".  This likely is due to
> > compiling with -Werror and gcc-16 having gained precision in warnings
> > (or false positives). I cannot reproduce this on amd64.
> 
> Do you want to file another bug for this?

I see two possible subproblems here. One is compilation using -Werror.
As Debian packages newer compilers, -Werror is very likely to cause
frequent FTBFS. We are seeing this in other packages already. Therefore,
-Werror (as well as running shellcheck during build) is something that I
and others discourage. This is not trying to devalue these tools. In
your own CI, they are very valuable. For instance, your salsa-ci builds
may export DEB_CFLAGS_APPEND=-Werror so you get to see those problems
sooner while not having the urgency to fix them right away. Whether this
is a bug is in the eye of the beholder. Some maintainers vehemently
disagree with turning off -Werror by default. Do you see it as a bug?

The other aspect is that this happens while building botan 2.x. I don't
think it makes much sense to invest into the particular problem as it
has become clear that this code is being changed.

> I believe the reason for OSCAR to vendor botan is the fact that botan
> isn't available in Debian unstable/testing anymore.  I will wait for
> upstream's reply to the issue before I decide what to do here.

I checked older versions and didn't find any that actually dependend on
botan. Could it be that it rather is a convenience copy? It also looks
like oscar only uses a small fraction of botan.

>From a process point of view, I'd like to get this bug out of the RC
state asap. I'm not sure how to get there though. A relatively time
intensive option is evaluating applicability of botan vulnerabilities
against oscar (hopefully figuring that none of them apply), recording
the embedding (against botan3 even though the 2.x version is used) and
downgrading it beyond rc. Another time intensive option is porting oscar
to botan3 (and also recording the embedding unless it can be
unvendored). The latter has more unknowns but likely is the better
long-term investment.

Regarding unembedding, I can already tell that it is not trivial as
oscar uses an amalgamation. At the very least #include directives change
a lot when using a system copy. Also consider whether upstream may want
to keep the embedding as a convenience for non-Debian users that wish to
avoid building a separate botan. Possibly, supporting both a vendored
and a system botan will be necessary.

I wish it was easier.

Helmut

Reply via email to