From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 12074 invoked from network); 29 May 2023 10:32:20 -0000 Received: from second.openwall.net (193.110.157.125) by inbox.vuxu.org with ESMTPUTF8; 29 May 2023 10:32:20 -0000 Received: (qmail 15400 invoked by uid 550); 29 May 2023 10:32:16 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 15367 invoked from network); 29 May 2023 10:32:15 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=date:from:to:subject:message-id:mime-version; bh=GsXrl2FtpyvVpZC0qRAk079Yc/ScJwGHbUXq2EhPUBY=; b=M0mcI/4GnliJeq6UzxLJXVuj91jD9P5XJ1VbE9UOy0WQ7tL48qpTSHxC VM44scUHSncg6KIe3N2SiUO8OlgR57py2yhnYvru8DuwCBOdxrZpF9qMP VxNAWUGDWTtq4fKXxvczaz/NQ/j/jFZ1sJwJBGDcPFWB9C9cYCayi+k4i E=; Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=SoftFail smtp.mailfrom=jens.gustedt@inria.fr; dmarc=fail (p=none dis=none) d=inria.fr X-IronPort-AV: E=Sophos;i="6.00,201,1681164000"; d="scan'208";a="110107329" Date: Mon, 29 May 2023 12:32:02 +0200 From: =?UTF-8?B?SuKCkeKCmeKCmw==?= Gustedt To: musl@lists.openwall.com Message-ID: <20230529123202.63f09fc2@inria.fr> Organization: inria.fr X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) X-Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAAXNSR0IArs4c6QAAACRQTFRFERslNjAsLTE9Ok9wUk9TaUs8iWhSrYZkj42Rz6aD3sGZ MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/1TcCUzAlB0EEiRyiRJIu4Yd"; protocol="application/pgp-signature"; micalg=pgp-sha1 Subject: [musl] changes for scanf in C23 --Sig_/1TcCUzAlB0EEiRyiRJIu4Yd Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi, we already discussed this but it doesn't seem that we have come to a conclusion. The problem is that for C23 semantics of several string to integer conversion functions change: a 'b' or 'B' that previously was the stop condition for integer parsing may become part of the integer string. This concerns all `scanf` and `strto` derivatives. This is probably not a problem for most applications that parse strings to integers, but it could be in some situations, and in particular it could open vulnerabilities. E.g network addresses that are read with base `0` (musl does this at some point to allow to have decimal or hex strings) could be open to attacks, once people start using binary encodings for integers more often. Another scenario where this could lead to harm is automatically produced output that is automatically scanned, and where nobody previously took care of proper word boundaries. My current idea is to have two sets of these functions, one that has the old semantics and one that has the new. - Newly compiled objects that don't do fancy stuff (such as `(scanf)(...)` or `#undef scanf`) would see hard-coded linker symbols such as `scanf-c17` or `scanf-c23` according to the standard's version they compile against. When linking statically, this would just chose that one particular set of functions. The dynamic library would always have both versions, to accomdate objects that have been compiled with any standard's version. - Old compiled objects and executables as well as those where users chose to `#undef` or use their own headers/prototyes would receive a default (something like: starting with version X, musl uses C23 semantics), but which could be overwritten under the responsibility of the provider of the compiled musl library. J=E2=82=91=E2=82=99=E2=82=9B --=20 :: ICube :::::::::::::::::::::::::::::: deputy director :: :: Universit=C3=A9 de Strasbourg :::::::::::::::::::::: ICPS :: :: INRIA Nancy Grand Est :::::::::::::::::::::::: Camus :: :: :::::::::::::::::::::::::::::::::::: =E2=98=8E +33 368854536 :: :: https://icube-icps.unistra.fr/index.php/Jens_Gustedt :: --Sig_/1TcCUzAlB0EEiRyiRJIu4Yd Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iF0EARECAB0WIQSN9stI2OFN1pLljN0P0+hp2tU34gUCZHR/IgAKCRAP0+hp2tU3 4uz0AJwOOw5a6GLO9TsNlglBETnVmhb1PgCfY5QQfK9h++0G+FEHe5tLBIiUw40= =59uV -----END PGP SIGNATURE----- --Sig_/1TcCUzAlB0EEiRyiRJIu4Yd--