[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bf555c2a4df5196533b6e614cc57638004dfb426.camel@infradead.org>
Date: Wed, 18 Oct 2023 01:30:18 +0100
From: David Woodhouse <dwmw2@...radead.org>
To: Christoph Hellwig <hch@....de>, Luis Chamberlain <mcgrof@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Daniel Mack
<daniel@...que.org>, Haojian Zhuang <haojian.zhuang@...il.com>, Robert
Jarzmik <robert.jarzmik@...e.fr>, Ulf Hansson <ulf.hansson@...aro.org>,
Manuel Lauss <manuel.lauss@...il.com>, Yangbo Lu <yangbo.lu@....com>,
Joshua Kinard <kumba@...too.org>
Cc: Daniel Vetter <daniel.vetter@...ll.ch>, Arnd Bergmann <arnd@...db.de>,
linux-arm-kernel@...ts.infradead.org, open list
<linux-kernel@...r.kernel.org>, linux-mmc@...r.kernel.org,
netdev@...r.kernel.org, linux-rtc@...r.kernel.org,
linux-modules@...r.kernel.org
Subject: Re: [PATCH 5/5] modules: only allow symbol_get of EXPORT_SYMBOL_GPL
modules
On Tue, 2023-08-01 at 19:35 +0200, Christoph Hellwig wrote:
> It has recently come to my attention that nvidia is circumventing the
> protection added in 262e6ae7081d ("modules: inherit
> TAINT_PROPRIETARY_MODULE") by importing exports from their proprietary
> modules into an allegedly GPL licensed module and then rexporting them.
>
> Given that symbol_get was only ever intended for tightly cooperating
> modules using very internal symbols it is logical to restrict it to
> being used on EXPORT_SYMBOL_GPL and prevent nvidia from costly DMCA
> Circumvention of Access Controls law suites.
I'm all for insisting that everything be exported with
EXPORT_SYMBOL_GPL and nothing at all ever be exported with just
EXPORT_SYMBOL.
But if we're going to tolerate the core kernel still exporting some
stuff with EXPORT_SYMBOL, why isn't OK for a GPL-licensed module do to
the same? Even an *in-tree* GPL-licensed module now can't export
functionality with EXPORT_SYMBOL and have it used with symbol_get().
We're forced to *either* allow direct linking by non-GPL modules, or
allow symbol_get(), but not both?
> Fixes: 262e6ae7081d ("modules: inherit TAINT_PROPRIETARY_MODULE")
Hm, the condition we really need to fix *that* is "symbol_get() will
only import symbols from GPL-licensed modules", isn't it?
As long as that property is correctly transitive, why does the symbol
itself have to be EXPORT_SYMBOL_GPL instead of EXPORT_SYMBOL? Am I
missing another potential loophole?
I suppose there's now scope for a different type of shim which
*directly* imports an EXPORT_SYMBOL function in order to export it
again as EXPORT_SYMBOL_GPL and thus allow the GPL export to be found
with symbol_get()?
That's the *converse* of the problematic shim that was being used
before, and from a licensing point of view it seems fine... it's just
working around the unintended side-effects of this patch?
Download attachment "smime.p7s" of type "application/pkcs7-signature" (5965 bytes)
Powered by blists - more mailing lists