Received: (at 45198) by debbugs.gnu.org; 13 Sep 2022 12:37:15 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Sep 13 08:37:15 2022 Received: from localhost ([127.0.0.1]:49213 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1oY5AB-0000Ll-9u for submit <at> debbugs.gnu.org; Tue, 13 Sep 2022 08:37:15 -0400 Received: from mail234c50.megamailservers.eu ([91.136.10.244]:54154 helo=mail37c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1oY5A8-0000LW-HX for 45198 <at> debbugs.gnu.org; Tue, 13 Sep 2022 08:37:14 -0400 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1663072630; bh=OEYKuutqjSJAJTyzMdziMCIhmOcNTPax8LZbAubfGRA=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=IftN/mYbEqJzRDi8I0CRchBdwZjX4Rwhys4zMZ4D8vtyiw52KVF/VQEEP/PFzPrPS mUAFKRlHRIOdNPttxcXpm65ijqiHRVKJ1fY6JsxLs54FodfVSBOypwkDZsbS8y4qA/ mtaEl+446t8I0nUkW1UsELDgX2YhAFmqSFdocAXI= Feedback-ID: mattiase@HIDDEN Received: from smtpclient.apple (c188-150.188-179.bredband.tele2.se [188.150.188.179] (may be forged)) (authenticated bits=0) by mail37c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 28DCb7Yo121912; Tue, 13 Sep 2022 12:37:08 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: mattiase@HIDDEN In-Reply-To: <87pmg2f8uz.fsf@HIDDEN> Date: Tue, 13 Sep 2022 14:37:06 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <3E355F21-1D0A-45AC-B33F-7C9FD1027F26@HIDDEN> References: <DCB89188-A9D5-4A64-8DD2-BE1DD8A2B202@HIDDEN> <jwvfsu3732l.fsf-monnier+emacs@HIDDEN> <8355EDD1-FF78-43B1-8F96-4EB3316E8FEB@HIDDEN> <87pmg2f8uz.fsf@HIDDEN> To: Lars Ingebrigtsen <larsi@HIDDEN> X-Mailer: Apple Mail (2.3654.120.0.1.13) X-CTCH-RefID: str=0001.0A782F24.63207976.003B, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-Origin-Country: SE X-Spam-Score: 2.4 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 11 sep. 2022 kl. 13.28 skrev Lars Ingebrigtsen <larsi@HIDDEN>: > This was a year ago, but it looks like none of these patches were > applied? Probably means they weren't very good to begin with. Content analysis details: (2.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -0.0 T_SCC_BODY_TEXT_LINE No description available. 1.0 MAY_BE_FORGED Relay IP's reverse DNS does not resolve to IP 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 45198 Cc: Alan Third <alan@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefan@HIDDEN>, Philipp <p.stephani2@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) 11 sep. 2022 kl. 13.28 skrev Lars Ingebrigtsen <larsi@HIDDEN>: > This was a year ago, but it looks like none of these patches were > applied? Probably means they weren't very good to begin with. > I think having a sandbox mode would certainly be good in principle. Same here, but I know how perilous it is to design interfaces without a = concrete and obviously useful application from the start so let's be = careful.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 11 Sep 2022 11:28:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 11 07:28:54 2022 Received: from localhost ([127.0.0.1]:40938 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1oXL8w-0003RB-Gy for submit <at> debbugs.gnu.org; Sun, 11 Sep 2022 07:28:54 -0400 Received: from quimby.gnus.org ([95.216.78.240]:39462) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <larsi@HIDDEN>) id 1oXL8u-0003Qy-LH for 45198 <at> debbugs.gnu.org; Sun, 11 Sep 2022 07:28:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID :Date:References:In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=anjljJpxS4wmrx04pk/rpAVeFRPvX6DfzValEMeKRik=; b=Pcw1/jbWfSpf+7/rd+rhw0IoQ6 Z44cvGxYoOxDSqIFkMfvLLYga+6H6ShwPZSiMw90nTCEVaSk7wWa0QEHnxAqi7o+NEldbwbFQmpJO gJof1dyXyTIqeM3boI6/VkIa/8YPi/YUwRCp9jX9R/LmgcP4dt/FiDgnntgFMFA7e0vI=; Received: from [84.212.220.105] (helo=joga) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <larsi@HIDDEN>) id 1oXL8e-0003rV-UJ; Sun, 11 Sep 2022 13:28:39 +0200 From: Lars Ingebrigtsen <larsi@HIDDEN> To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode In-Reply-To: <8355EDD1-FF78-43B1-8F96-4EB3316E8FEB@HIDDEN> ("Mattias =?utf-8?Q?Engdeg=C3=A5rd=22's?= message of "Fri, 17 Sep 2021 21:49:39 +0200") References: <DCB89188-A9D5-4A64-8DD2-BE1DD8A2B202@HIDDEN> <jwvfsu3732l.fsf-monnier+emacs@HIDDEN> <8355EDD1-FF78-43B1-8F96-4EB3316E8FEB@HIDDEN> X-Now-Playing: Insides's _Euphoria_: "Skykicking" Date: Sun, 11 Sep 2022 13:28:36 +0200 Message-ID: <87pmg2f8uz.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Mattias Engdegård <mattiase@HIDDEN> writes: > Of course this whole exercise doesn't really touch the questions that > really matter, such as whether it is practical for actual use. This was a year ago, but it looks like none of these patches were applied? Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Alan Third <alan@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefan@HIDDEN>, Philipp <p.stephani2@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, =?utf-8?B?Sm8=?= =?utf-8?B?w6NvIFTDoXZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Mattias Engdeg=C3=A5rd <mattiase@HIDDEN> writes: > Of course this whole exercise doesn't really touch the questions that > really matter, such as whether it is practical for actual use. This was a year ago, but it looks like none of these patches were applied? I think having a sandbox mode would certainly be good in principle.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Sep 2021 19:49:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 17 15:49:57 2021 Received: from localhost ([127.0.0.1]:33054 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1mRJrx-0003B4-G9 for submit <at> debbugs.gnu.org; Fri, 17 Sep 2021 15:49:57 -0400 Received: from mail1449c50.megamailservers.eu ([91.136.14.49]:56108 helo=mail265c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1mRJrs-0003Ak-5I for 45198 <at> debbugs.gnu.org; Fri, 17 Sep 2021 15:49:55 -0400 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1631908184; bh=fEzvJxKTeOE8t5f2hV775ozI3pqxTvzV2aj3dXAlmvk=; h=From:Subject:Date:In-Reply-To:Cc:To:References:From; b=Tb3PqEzXIZ5bIXPVRfQTEc/2+E72baAXpCHwb3u6gc1agdQH+gWOQCB8zLfGVGZn1 ghmI8lG+oMyHGPfIQIpgIXBj+5MqIP3LQ5P/ANNFmTUrJLljHn80XyVibyK8m8TUZj jj2cdTNhZmdIDodMvmh5Pomn+0UxTksfwSTVfIQE= Feedback-ID: mattiase@HIDDEN Received: from [192.168.0.4] (c188-150-171-71.bredband.tele2.se [188.150.171.71]) (authenticated bits=0) by mail265c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 18HJnevZ019213; Fri, 17 Sep 2021 19:49:42 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Message-Id: <8355EDD1-FF78-43B1-8F96-4EB3316E8FEB@HIDDEN> Content-Type: multipart/mixed; boundary="Apple-Mail=_E7692CE5-7A32-4E92-BD0A-A145CC42C55F" Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.21\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode Date: Fri, 17 Sep 2021 21:49:39 +0200 In-Reply-To: <jwvfsu3732l.fsf-monnier+emacs@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> References: <DCB89188-A9D5-4A64-8DD2-BE1DD8A2B202@HIDDEN> <jwvfsu3732l.fsf-monnier+emacs@HIDDEN> X-Mailer: Apple Mail (2.3445.104.21) X-CTCH-RefID: str=0001.0A742F22.6144F158.006A, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.4 cv=adICITkt c=1 sm=1 tr=0 ts=6144f158 a=SF+I6pRkHZhrawxbOkkvaA==:117 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=M51BFTxLslgA:10 a=iRZporoAAAAA:8 a=wuWo1mPVt09aIbERY5QA:9 a=CjuIK1q_8ugA:10 a=2i1jUgeGfihAGWfHL1kA:9 a=B2y7HmGcmWMA:10 a=7yj0kKAPgQKSsoQ_J6wA:9 a=NOBgFS-JBQ2l-kSd6-zu:22 X-Origin-Country: SE X-Spam-Score: 1.4 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 17 sep. 2021 kl. 15.20 skrev Stefan Monnier <monnier@HIDDEN>: > For `elpa-admin.el` we need a writable directory as well. > We also need the ability to run sub-processes. Your `bwrap` > implementation for GNU/Linux should allow that, AFAICT, but I can't tell > i [...] Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 45198 Cc: Alan Third <alan@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefan@HIDDEN>, Philipp <p.stephani2@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, Eli Zaretskii <eliz@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) --Apple-Mail=_E7692CE5-7A32-4E92-BD0A-A145CC42C55F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii 17 sep. 2021 kl. 15.20 skrev Stefan Monnier <monnier@HIDDEN>: > For `elpa-admin.el` we need a writable directory as well. > We also need the ability to run sub-processes. Your `bwrap` > implementation for GNU/Linux should allow that, AFAICT, but I can't = tell > if `darwin-sandbox-enter` also allows it. Looks like it can be made to work. Of course this whole exercise doesn't really touch the questions that = really matter, such as whether it is practical for actual use. --Apple-Mail=_E7692CE5-7A32-4E92-BD0A-A145CC42C55F Content-Disposition: attachment; filename=0001-Add-macOS-sandboxing-bug-45198.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Add-macOS-sandboxing-bug-45198.patch" Content-Transfer-Encoding: quoted-printable =46rom=2003233ad9abb0c18bdbd00eb2cad42db8a252cafe=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= <mattiase@HIDDEN>=0ADate:=20Sat,=2017=20Apr=202021=2020:53:39=20+0200=0A= Subject:=20[PATCH=201/2]=20Add=20macOS=20sandboxing=20(bug#45198)=0A=0A= This=20is=20the=20corresponding=20low-level=20sandboxing=20facility=20= corresponding=0Ato=20the=20recently=20added=20Seccomp=20for=20Linux.=20=20= `darwin-sandbox-init`=20gives=0Adirect=20access=20to=20the=20system=20= sandboxing=20call;=20`darwin--sandbox-enter`=0Ais=20a=20wrapper=20that=20= takes=20a=20plist=20specifying=20directories=20under=20which=0Afiles=20= can=20be=20read,=20written=20or=20executed.=20=20These=20should=20be=20= considered=0Ainternal=20mechanisms=20for=20now.=0A=0A*=20= lisp/darwin-fns.el:=20New=20file.=0A*=20lisp/loadup.el:=20Load=20it.=0A*=20= src/sysdep.c=20(Fdarwin_sandbox_init):=20New=20function.=0A*=20= test/lisp/darwin-fns-tests.el:=20New=20file.=0A---=0A=20= lisp/darwin-fns.el=20=20=20=20=20=20=20=20=20=20=20=20|=2056=20= +++++++++++++++++++++=0A=20lisp/loadup.el=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20|=20=202=20+=0A=20src/sysdep.c=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20|=2034=20+++++++++++++=0A=20= test/lisp/darwin-fns-tests.el=20|=2091=20= +++++++++++++++++++++++++++++++++++=0A=204=20files=20changed,=20183=20= insertions(+)=0A=20create=20mode=20100644=20lisp/darwin-fns.el=0A=20= create=20mode=20100644=20test/lisp/darwin-fns-tests.el=0A=0Adiff=20--git=20= a/lisp/darwin-fns.el=20b/lisp/darwin-fns.el=0Anew=20file=20mode=20100644=0A= index=200000000000..feba9739b5=0A---=20/dev/null=0A+++=20= b/lisp/darwin-fns.el=0A@@=20-0,0=20+1,56=20@@=0A+;;;=20darwin-fns.el=20= ---=20Darwin-specific=20functions=20=20-*-=20lexical-binding:=20t=20-*-=0A= +=0A+;;=20Copyright=20(C)=202021=20Free=20Software=20Foundation,=20Inc.=0A= +=0A+;;=20This=20file=20is=20part=20of=20GNU=20Emacs.=0A+=0A+;;=20GNU=20= Emacs=20is=20free=20software:=20you=20can=20redistribute=20it=20and/or=20= modify=0A+;;=20it=20under=20the=20terms=20of=20the=20GNU=20General=20= Public=20License=20as=20published=20by=0A+;;=20the=20Free=20Software=20= Foundation,=20either=20version=203=20of=20the=20License,=20or=0A+;;=20= (at=20your=20option)=20any=20later=20version.=0A+=0A+;;=20GNU=20Emacs=20= is=20distributed=20in=20the=20hope=20that=20it=20will=20be=20useful,=0A= +;;=20but=20WITHOUT=20ANY=20WARRANTY;=20without=20even=20the=20implied=20= warranty=20of=0A+;;=20MERCHANTABILITY=20or=20FITNESS=20FOR=20A=20= PARTICULAR=20PURPOSE.=20=20See=20the=0A+;;=20GNU=20General=20Public=20= License=20for=20more=20details.=0A+=0A+;;=20You=20should=20have=20= received=20a=20copy=20of=20the=20GNU=20General=20Public=20License=0A+;;=20= along=20with=20GNU=20Emacs.=20=20If=20not,=20see=20= <https://www.gnu.org/licenses/>.=0A+=0A+;;;=20Code:=0A+=0A+(defun=20= darwin--sandbox-enter=20(spec)=0A+=20=20"Enter=20a=20sandbox=20only=20= permitting=20actions=20described=20by=20SPEC.=0A+SPEC=20is=20a=20plist=20= allowing=20the=20keys:=0A+`:read-dirs'=20=20--=20value=20is=20a=20list=20= of=20directories=20in=20which=20reading=20is=20allowed.=0A+`:write-dirs'=20= --=20value=20is=20a=20list=20of=20directories=20in=20which=20writing=20= is=20allowed.=0A+`:exec-dirs'=20=20--=20value=20is=20a=20list=20of=20= directories=20from=20which=20executables=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20can=20be=20run=20as=20subprocesses.=0A+Most=20other=20= operations=20such=20as=20network=20access=20are=20disallowed.=0A= +Existing=20open=20descriptors=20can=20still=20be=20used=20freely.=0A+=0A= +This=20is=20not=20a=20supported=20interface=20and=20is=20for=20internal=20= use=20only."=0A+=20=20(let=20((read-dirs=20(plist-get=20spec=20= :read-dirs))=0A+=20=20=20=20=20=20=20=20(write-dirs=20(plist-get=20spec=20= :write-dirs))=0A+=20=20=20=20=20=20=20=20(exec-dirs=20(plist-get=20spec=20= :exec-dirs)))=0A+=20=20=20=20(darwin-sandbox-init=0A+=20=20=20=20=20= (concat=0A+=20=20=20=20=20=20"(version=201)\n"=0A+=20=20=20=20=20=20= "(deny=20default)\n"=0A+=20=20=20=20=20=20;;=20Emacs=20seems=20to=20need=20= /dev/null;=20allowing=20it=20does=20no=20harm.=0A+=20=20=20=20=20=20= "(allow=20file-read*=20(path=20\"/dev/null\"))\n"=0A+=20=20=20=20=20=20= (mapconcat=20(lambda=20(dir)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(format=20"(allow=20file-read*=20(subpath=20%S))\n"=20= dir))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20read-dirs=20= "")=0A+=20=20=20=20=20=20(mapconcat=20(lambda=20(dir)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(format=20"(allow=20file-write*=20= (subpath=20%S))\n"=20dir))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20write-dirs=20"")=0A+=20=20=20=20=20=20(mapconcat=20(lambda=20(dir)=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(format=20= "(allow=20process-exec=20(subpath=20%S))\n"=20dir))=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20exec-dirs=20"")=0A+=20=20=20=20=20=20= (and=20exec-dirs=0A+=20=20=20=20=20=20=20=20=20=20=20"(allow=20= process-fork)\n")))))=0A+=0A+(provide=20'darwin-fns)=0A+=0A+;;;=20= darwin-fns.el=20ends=20here=0Adiff=20--git=20a/lisp/loadup.el=20= b/lisp/loadup.el=0Aindex=20158c02ecea..163b639640=20100644=0A---=20= a/lisp/loadup.el=0A+++=20b/lisp/loadup.el=0A@@=20-325,6=20+325,8=20@@=0A=20= =20=20=20=20=20=20(load=20"term/pc-win")=0A=20=20=20=20=20=20=20(load=20= "ls-lisp")=0A=20=20=20=20=20=20=20(load=20"disp-table")))=20;=20needed=20= to=20setup=20ibm-pc=20char=20set,=20see=20internal.el=0A+(if=20(eq=20= system-type=20'darwin)=0A+=20=20=20=20(load=20"darwin-fns"))=0A=20(if=20= (featurep=20'ns)=0A=20=20=20=20=20(progn=0A=20=20=20=20=20=20=20(load=20= "term/common-win")=0Adiff=20--git=20a/src/sysdep.c=20b/src/sysdep.c=0A= index=208eaee22498..79a1fad4da=20100644=0A---=20a/src/sysdep.c=0A+++=20= b/src/sysdep.c=0A@@=20-4458,8=20+4458,42=20@@=20str_collate=20= (Lisp_Object=20s1,=20Lisp_Object=20s2,=0A=20}=0A=20#endif=09/*=20= WINDOWSNT=20*/=0A=20=0A+#ifdef=20DARWIN_OS=0A+=0A+/*=20This=20function=20= prototype=20is=20not=20in=20the=20platform=20header=20files.=0A+=20=20=20= See=20= https://reverse.put.as/wp-content/uploads/2011/09/Apple-Sandbox-Guide-v1.0= .pdf=0A+=20=20=20and=20= https://chromium.googlesource.com/chromium/src/+/master/sandbox/mac/seatbe= lt_sandbox_design.md=20*/=0A+int=20sandbox_init_with_parameters(const=20= char=20*profile,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20uint64_t=20flags,=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20const=20char=20*const=20parameters[],=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20char=20**errorbuf);=0A+=0A+DEFUN=20("darwin-sandbox-init",=20= Fdarwin_sandbox_init,=20Sdarwin_sandbox_init,=0A+=20=20=20=20=20=20=201,=20= 1,=200,=0A+=20=20=20=20=20=20=20doc:=20/*=20Enter=20a=20sandbox=20whose=20= permitted=20access=20is=20curtailed=20by=20PROFILE.=0A+Already=20open=20= descriptors=20can=20be=20used=20freely.=0A+PROFILE=20is=20a=20string=20= in=20the=20macOS=20sandbox=20profile=20language,=0A+a=20set=20of=20rules=20= in=20a=20Lisp-like=20syntax.=0A+=0A+This=20is=20not=20a=20supported=20= interface=20and=20is=20for=20internal=20use=20only.=20*/)=0A+=20=20= (Lisp_Object=20profile)=0A+{=0A+=20=20CHECK_STRING=20(profile);=0A+=20=20= if=20(memchr=20(SSDATA=20(profile),=20'\0',=20SBYTES=20(profile)))=0A+=20= =20=20=20error=20("NUL=20in=20sandbox=20profile");=0A+=20=20char=20*err=20= =3D=20NULL;=0A+=20=20if=20(sandbox_init_with_parameters=20(SSDATA=20= (profile),=200,=20NULL,=20&err)=20!=3D=200)=0A+=20=20=20=20error=20= ("sandbox=20error:=20%s",=20err);=0A+=20=20return=20Qnil;=0A+}=0A+=0A= +#endif=09/*=20DARWIN_OS=20*/=0A+=0A=20void=0A=20syms_of_sysdep=20(void)=0A= =20{=0A=20=20=20defsubr=20(&Sget_internal_run_time);=0A+#ifdef=20= DARWIN_OS=0A+=20=20defsubr=20(&Sdarwin_sandbox_init);=0A+#endif=0A=20}=0A= diff=20--git=20a/test/lisp/darwin-fns-tests.el=20= b/test/lisp/darwin-fns-tests.el=0Anew=20file=20mode=20100644=0Aindex=20= 0000000000..fa0d58ac3d=0A---=20/dev/null=0A+++=20= b/test/lisp/darwin-fns-tests.el=0A@@=20-0,0=20+1,91=20@@=0A+;;;=20= darwin-fns-tests.el=20---=20tests=20for=20darwin-fns.el=20=20-*-=20= lexical-binding:=20t=20-*-=0A+=0A+;;=20Copyright=20(C)=202021=20=20Free=20= Software=20Foundation,=20Inc.=0A+=0A+;;=20This=20file=20is=20part=20of=20= GNU=20Emacs.=0A+=0A+;;=20GNU=20Emacs=20is=20free=20software:=20you=20can=20= redistribute=20it=20and/or=20modify=0A+;;=20it=20under=20the=20terms=20= of=20the=20GNU=20General=20Public=20License=20as=20published=0A+;;=20by=20= the=20Free=20Software=20Foundation,=20either=20version=203=20of=20the=20= License,=0A+;;=20or=20(at=20your=20option)=20any=20later=20version.=0A+=0A= +;;=20GNU=20Emacs=20is=20distributed=20in=20the=20hope=20that=20it=20= will=20be=20useful,=20but=0A+;;=20WITHOUT=20ANY=20WARRANTY;=20without=20= even=20the=20implied=20warranty=20of=0A+;;=20MERCHANTABILITY=20or=20= FITNESS=20FOR=20A=20PARTICULAR=20PURPOSE.=20=20See=20the=20GNU=0A+;;=20= General=20Public=20License=20for=20more=20details.=0A+=0A+;;=20You=20= should=20have=20received=20a=20copy=20of=20the=20GNU=20General=20Public=20= License=0A+;;=20along=20with=20GNU=20Emacs.=20=20If=20not,=20see=20= <https://www.gnu.org/licenses/>.=0A+=0A+(require=20'ert)=0A+=0A+(defun=20= darwin-fns-tests--run-emacs=20(expr1=20expr2)=0A+=20=20"Run=20Emacs=20in=20= batch=20mode=20and=20evaluate=20EXPR1=20and=20EXPR2.=0A+Return=20= (EXIT-STATUS=20.=20OUTPUT),=20where=20OUTPUT=20is=20stderr=20and=20= stdout."=0A+=20=20(let=20((emacs=20(expand-file-name=20invocation-name=20= invocation-directory))=0A+=20=20=20=20=20=20=20=20(process-environment=20= nil))=0A+=20=20=20=20(with-temp-buffer=0A+=20=20=20=20=20=20(let=20((res=20= (call-process=20emacs=20nil=20t=20nil=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20"--quick"=20= "--batch"=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(format=20"--eval=3D%S"=20expr1)=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(format=20"--eval=3D%S"=20expr2))))=0A+=20=20=20=20=20=20=20=20= (cons=20res=20(buffer-string))))))=0A+=0A+(ert-deftest=20= darwin-fns-sandbox=20()=0A+=20=20(skip-unless=20(eq=20system-type=20= 'darwin))=0A+=20=20;;=20Test=20file=20reading=20and=20writing=20under=20= various=20sandboxing=20conditions.=0A+=20=20(let*=20((some-text=20= "abcdef")=0A+=20=20=20=20=20=20=20=20=20(new-text=20"ghijkl")=0A+=20=20=20= =20=20=20=20=20=20(test-file=20(file-truename=20(make-temp-file=20= "test")))=0A+=20=20=20=20=20=20=20=20=20(file-dir=20(file-name-directory=20= test-file)))=0A+=20=20=20=20(unwind-protect=0A+=20=20=20=20=20=20=20=20= (dolist=20(mode=20'(read=20write))=0A+=20=20=20=20=20=20=20=20=20=20= (ert-info=20((symbol-name=20mode)=20:prefix=20"mode:=20")=0A+=20=20=20=20= =20=20=20=20=20=20=20=20(dolist=20(sandbox=20'(allow-all=20deny-all=20= allow-read))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20(ert-info=20= ((symbol-name=20sandbox)=20:prefix=20"sandbox:=20")=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20;;=20Prepare=20initial=20file=20contents.=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(with-temp-buffer=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(insert=20some-text)=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(write-file=20= test-file))=0A+=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let*=20= ((sandbox-form=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(pcase-exhaustive=20sandbox=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20('allow-all=20nil)=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20('deny-all=20'(darwin--sandbox-enter=20nil))=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20('allow-read=20= `(darwin--sandbox-enter=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= '(:read-dirs=20(,file-dir))))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(action-form=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(pcase-exhaustive=20mode=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20('read=20`(progn=20(find-file-literally=20,test-file)=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20(message=20"OK:=20%s"=20= (buffer-string))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20('write=20`(with-temp-buffer=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(insert=20,new-text)=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20(write-file=20,test-file)))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(allowed=20(or=20(eq=20sandbox=20= 'allow-all)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(and=20(eq=20sandbox=20= 'allow-read)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(eq=20= mode=20'read))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(res-out=20(darwin-fns-tests--run-emacs=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20sandbox-form=20action-form))=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20(exit-status=20(car=20res-out))=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (output=20(cdr=20res-out))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(file-contents=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(with-temp-buffer=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (insert-file-contents-literally=20test-file)=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(buffer-string))))=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20allowed=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(should=20= (equal=20exit-status=200))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(should-not=20(equal=20exit-status=200)))=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(when=20(eq=20mode=20'read)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20allowed=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (should=20(equal=20output=20(format=20"OK:=20%s\n"=20some-text)))=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(should-not=20= (string-search=20some-text=20output))))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(should=20(equal=20file-contents=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(if=20(and=20(eq=20mode=20'write)=20allowed)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20new-text=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= some-text))))))))=0A+=0A+=20=20=20=20=20=20;;=20Clean=20up.=0A+=20=20=20=20= =20=20(ignore-errors=20(delete-file=20test-file)))))=0A+=0A+=0A+(provide=20= 'darwin-fns-tests)=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=0A= --Apple-Mail=_E7692CE5-7A32-4E92-BD0A-A145CC42C55F Content-Disposition: attachment; filename=0002-platform-independent-sandbox-interface.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0002-platform-independent-sandbox-interface.patch" Content-Transfer-Encoding: quoted-printable =46rom=20aa7780d2a40cf1da60ae236e9468cea9c36a8350=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= <mattiase@HIDDEN>=0ADate:=20Fri,=2017=20Sep=202021=2009:30:53=20+0200=0A= Subject:=20[PATCH=202/2]=20platform-independent=20sandbox=20interface=0A=0A= ---=0A=20lisp/sandbox.el=20|=2091=20= +++++++++++++++++++++++++++++++++++++++++++++++++=0A=201=20file=20= changed,=2091=20insertions(+)=0A=20create=20mode=20100644=20= lisp/sandbox.el=0A=0Adiff=20--git=20a/lisp/sandbox.el=20= b/lisp/sandbox.el=0Anew=20file=20mode=20100644=0Aindex=20= 0000000000..589d25615a=0A---=20/dev/null=0A+++=20b/lisp/sandbox.el=0A@@=20= -0,0=20+1,91=20@@=0A+;;;=20-*-=20lexical-binding:=20t=20-*-=0A+=0A= +(require=20'cl-lib)=0A+=0A+(defconst=20sandbox-mechanism=0A+=20=20;;=20= FIXME:=20make=20it=20a=20defcustom?=20What=20about=20other=20systems?=0A= +=20=20(cond=20((eq=20system-type=20'darwin)=20'darwin)=0A+=20=20=20=20=20= =20=20=20((eq=20system-type=20'gnu/linux)=20'bwrap)))=0A+=0A+(defun=20= sandbox-available-p=20()=0A+=20=20"Non-nil=20if=20a=20sandboxing=20= mechanism=20is=20available."=0A+=20=20;;=20FIXME:=20We=20should=20check=20= for=20availability=20of=20bwrap=20etc.=0A+=20=20(not=20(null=20= sandbox-mechanism)))=0A+=0A+(defun=20sandbox--program-args=20= (sandbox-spec=20prog)=0A+=20=20"Return=20(PROGRAM=20.=20ARGS)=20for=20= running=20PROG=20according=20to=20SANDBOX-SPEC."=0A+=20=20= (pcase-exhaustive=20sandbox-mechanism=0A+=20=20=20=20('darwin=0A+=20=20=20= =20=20(list=20prog=20"--eval"=0A+=20=20=20=20=20=20=20=20=20=20=20= (prin1-to-string=20`(darwin--sandbox-enter=20',sandbox-spec))))=0A+=20=20= =20=20('bwrap=0A+=20=20=20=20=20;;=20FIXME:=20with=20seccomp?=0A+=20=20=20= =20=20(let*=20((read-dirs=20(plist-get=20sandbox-spec=20:read-dirs))=0A+=20= =20=20=20=20=20=20=20=20=20=20=20(write-dirs=20(plist-get=20sandbox-spec=20= :write-dirs))=0A+=20=20=20=20=20=20=20=20=20=20=20=20(exec-dirs=20= (plist-get=20sandbox-spec=20:exec-dirs))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20(ro-dirs=20(cl-set-difference=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(cl-union=20read-dirs=20exec-dirs=20:test=20= #'equal)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20write-dirs=20:test=20#'equal)))=0A+=20=20=20=20=20=20=20`("bwrap"=0A+=20= =20=20=20=20=20=20=20=20"--unshare-all"=0A+=20=20=20=20=20=20=20=20=20= "--dev"=20"/dev"=0A+=20=20=20=20=20=20=20=20=20"--proc"=20"/proc"=0A+=20=20= =20=20=20=20=20=20=20"--tmpfs"=20"/tmp"=0A+=20=20=20=20=20=20=20=20=20= ,@(mapcan=20(lambda=20(dir)=20(let=20((d=20(expand-file-name=20dir)))=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(list=20"--ro-bind"=20d=20d)))=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20ro-dirs)=0A+=20=20=20=20= =20=20=20=20=20,@(mapcan=20(lambda=20(dir)=20(let=20((d=20= (expand-file-name=20dir)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20= "--bind"=20d=20d)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20write-dirs)=0A+=20=20=20=20=20=20=20=20=20,prog)))))=0A+=0A+(defun=20= sandbox--emacs-command=20(sandbox-spec=20args)=0A+=20=20"Command=20and=20= arguments=20for=20running=20Emacs=20with=20SANDBOX-SPEC=20and=20ARGS."=0A= +=20=20(let*=20((emacs=20(expand-file-name=20invocation-name=20= invocation-directory))=0A+=20=20=20=20=20=20=20=20=20(program-args=20= (sandbox--program-args=20sandbox-spec=20emacs)))=0A+=20=20=20=20= `(,@program-args=20"--batch"=20,@args)))=0A+=0A+(defun=20= sandbox-run-emacs=20(sandbox-spec=20destination=20args)=0A+=20=20"Run=20= sandboxed=20Emacs=20in=20batch=20mode,=20synchronously.=0A+SANDBOX-SPEC=20= is=20a=20sandbox=20specification=20plist.=20=20Currently=20defined=20= key:=0A+=20`:read-dirs'=20=20--=20the=20value=20is=20a=20list=20of=20= directories=20that=20can=20be=20read=20from.=0A+=20`:write-dirs'=20--=20= the=20value=20is=20a=20list=20of=20directories=20that=20can=20be=20= written=20to.=0A+=20`:exec-dirs'=20=20--=20the=20value=20is=20a=20list=20= of=20directories=20from=20which=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20executables=20can=20be=20run=20as=20subprocesses.=0A= +DESTINATION=20is=20as=20in=20`call-process'.=0A+ARGS=20is=20a=20list=20= of=20command-line=20arguments=20passed=20to=20the=20sandboxed=20Emacs.=0A= +Return=20value=20is=20as=20in=20`call-process'.=0A+=0A+Depending=20on=20= the=20platform,=20the=20sandbox=20restrictions=20do=20not=20necessarily=0A= +take=20effect=20until=20Emacs=20has=20been=20initialised=20and=20loaded=20= the=20site=20and=20user=0A+init=20files.=20=20If=20that=20is=20not=20= desirable,=20suppress=20their=20use=20by=20adding=20the=0A+corresponding=20= flags=20(eg=20\"-Q\")=20to=20ARGS."=0A+=20=20(let=20((command=20= (sandbox--emacs-command=20sandbox-spec=20args)))=0A+=20=20=20=20(apply=20= #'call-process=20(car=20command)=20nil=20destination=20nil=20(cdr=20= command))))=0A+=0A+(defun=20sandbox-start-emacs=20(sandbox-spec=20params=20= args)=0A+=20=20"Run=20sandboxed=20Emacs=20in=20batch=20mode,=20= asynchronously.=0A+SANDBOX-SPEC=20is=20a=20sandbox=20specification=20= plist.=20=20Currently=20defined=20key:=0A+=20`:read-dirs'=20=20--=20the=20= value=20is=20a=20list=20of=20directories=20that=20can=20be=20read=20= from.=0A+=20`:write-dirs'=20--=20the=20value=20is=20a=20list=20of=20= directories=20that=20can=20be=20written=20to.=0A+=20`:exec-dirs'=20=20--=20= the=20value=20is=20a=20list=20of=20directories=20from=20which=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20executables=20can=20be=20= run=20as=20subprocesses.=0A+ARGS=20is=20a=20list=20of=20command-line=20= arguments=20passed=20to=20the=20sandboxed=20Emacs.=0A+PARAMS=20is=20a=20= plist=20of=20parameters=20passed=20to=20`make-process'.=20=20Do=20not=0A= +=20=20supply=20`:command';=20it=20will=20be=20overridden=20by=20ARGS.=0A= +Return=20value=20is=20as=20in=20`make-process'.=0A+=0A+Depending=20on=20= the=20platform,=20the=20sandbox=20restrictions=20do=20not=20necessarily=0A= +take=20effect=20until=20Emacs=20has=20been=20initialised=20and=20loaded=20= the=20site=20and=20user=0A+init=20files.=20=20If=20that=20is=20not=20= desirable,=20suppress=20their=20use=20by=20adding=20the=0A+corresponding=20= flags=20(eg=20\"-Q\")=20to=20ARGS."=0A+=20=20(let*=20((command=20= (sandbox--emacs-command=20sandbox-spec=20args))=0A+=20=20=20=20=20=20=20=20= =20(params=20(copy-sequence=20params))=0A+=20=20=20=20=20=20=20=20=20= (params=20(plist-put=20params=20:command=20command)))=0A+=20=20=20=20= (unless=20(plist-member=20params=20:name)=0A+=20=20=20=20=20=20(setq=20= params=20(plist-put=20params=20:name=20"emacs")))=0A+=20=20=20=20(unless=20= (plist-member=20params=20:connection-type)=0A+=20=20=20=20=20=20(setq=20= params=20(plist-put=20params=20:connection-type=20'pipe)))=0A+=20=20=20=20= (apply=20#'make-process=20params)))=0A+=0A+(provide=20'sandbox)=0A--=20=0A= 2.21.1=20(Apple=20Git-122.3)=0A=0A= --Apple-Mail=_E7692CE5-7A32-4E92-BD0A-A145CC42C55F--
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Sep 2021 13:21:01 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 17 09:21:01 2021 Received: from localhost ([127.0.0.1]:58742 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1mRDnZ-00035K-88 for submit <at> debbugs.gnu.org; Fri, 17 Sep 2021 09:21:01 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:65109) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1mRDnV-00034u-Tr for 45198 <at> debbugs.gnu.org; Fri, 17 Sep 2021 09:20:59 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 6B4B1440BD5; Fri, 17 Sep 2021 09:20:52 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 2EE68440B14; Fri, 17 Sep 2021 09:20:51 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1631884851; bh=msCJXSYa2G5tB/EVrFQiBdGg2p481JGMdCcwdZtoFOo=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=Jn5sqo/UeR3V+p1OFn/sQ70V8UjbzK2rYaRuxdgMcBWZJia2o5CwhTm444h2uqTFU CJiMsUnI+YV6DTof0Iz2xXRuX6r53DJpmf9dTjhjJGn7vOmXQ9Vq57L9oD7s+c8GdX XfyEd0UFpsFSenW8rzK+1E7sfmQxI9kfhtLAQqzUU0lFyGwULuPO7gioOjqsZcSDFb pQah7kvQPULN3rXveeaKs1BwBzbjTrN7dCTHh/EHCUxQrVOye4dQrjxbKcBg7cfvMb 1cKideJxx5/FBILuCT4NUkN9/NPIWTFgKwezJITFu/qjXVgvjy7/Itd9FJx7ZlgLFY K2O8zjHwYY8hQ== Received: from pastel (unknown [45.72.241.23]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id E1873120320; Fri, 17 Sep 2021 09:20:50 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Mattias =?windows-1252?Q?Engdeg=E5rd?= <mattiase@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwvfsu3732l.fsf-monnier+emacs@HIDDEN> References: <DCB89188-A9D5-4A64-8DD2-BE1DD8A2B202@HIDDEN> Date: Fri, 17 Sep 2021 09:20:50 -0400 In-Reply-To: <DCB89188-A9D5-4A64-8DD2-BE1DD8A2B202@HIDDEN> ("Mattias =?windows-1252?Q?Engdeg=E5rd=22's?= message of "Fri, 17 Sep 2021 14:13:48 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.031 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Alan Third <alan@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefan@HIDDEN>, Philipp <p.stephani2@HIDDEN>, =?windows-1252?B?Sm/jbyBU4XZvcmE=?= <joaotavora@HIDDEN>, Eli Zaretskii <eliz@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > It's basically versions of `call-process` and `make-process` specialised for > running batch-mode Emacs in a sandbox. The attached patch is a straw man > proposal but that should serve as a starting point for agreement on what the > interface might look like. For `elpa-admin.el` we need a writable directory as well. We also need the ability to run sub-processes. Your `bwrap` implementation for GNU/Linux should allow that, AFAICT, but I can't tell if `darwin-sandbox-enter` also allows it. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Sep 2021 12:14:00 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 17 08:14:00 2021 Received: from localhost ([127.0.0.1]:58687 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1mRCkh-0001Oa-QE for submit <at> debbugs.gnu.org; Fri, 17 Sep 2021 08:14:00 -0400 Received: from mail18c50.megamailservers.eu ([91.136.10.28]:40944) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1mRCkc-0001OM-2m for 45198 <at> debbugs.gnu.org; Fri, 17 Sep 2021 08:13:58 -0400 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1631880831; bh=zdOhtTAeZaVdWo1v/MJiaZgMz9u8APKlXKfO9uFY/vc=; h=From:Subject:Date:Cc:To:From; b=T5y+qW+A/AdccwImx9+NXTVr6TzwBz/+dDxApLHYRv1nsdetA3mTzSpAV9hpwppVc 1PlFv/tMMugd+zRpirkwXQ/CJSYo2IpPubfk6fh+ezZdfedjMe8irsv4X9nfqZaPx/ Gd3U96MVm5hUcMdQTU/ysDBi9xeh69W2EZy+ZIuA= Feedback-ID: mattiase@HIDDEN Received: from [192.168.0.4] (c188-150-171-71.bredband.tele2.se [188.150.171.71]) (authenticated bits=0) by mail18c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 18HCDmuw001024; Fri, 17 Sep 2021 12:13:50 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: multipart/mixed; boundary="Apple-Mail=_75BBA58D-B918-40D7-B1FE-10C494228A76" Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.21\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-Id: <DCB89188-A9D5-4A64-8DD2-BE1DD8A2B202@HIDDEN> Date: Fri, 17 Sep 2021 14:13:48 +0200 To: Philipp <p.stephani2@HIDDEN> X-Mailer: Apple Mail (2.3445.104.21) X-CTCH-RefID: str=0001.0A742F1A.6144867F.0062, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.4 cv=etO8cqlX c=1 sm=1 tr=0 ts=6144867f a=SF+I6pRkHZhrawxbOkkvaA==:117 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=M51BFTxLslgA:10 a=_WudpDD8Swmy5rFBtbIA:9 a=CjuIK1q_8ugA:10 a=2YU-EQram26tckInahMA:9 a=B2y7HmGcmWMA:10 a=tclcd6dtLQvEqt9_mmAA:9 X-Origin-Country: SE X-Spam-Score: 3.7 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: So far the discussion has been focussed on platform-dependent low-level sandbox implementation. I took a stab at writing something that can be used by portable code. It's basically versions of `call-process` and `make-process` specialised for running batch-mode Emacs in a sandbox. The attached patch is a straw man proposal but that should serve as a starting point [...] Content analysis details: (3.7 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 T_SPF_TEMPERROR SPF: test of record failed (temperror) 3.7 FAKE_REPLY_B No description available. X-Debbugs-Envelope-To: 45198 Cc: Alan Third <alan@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 3.7 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: So far the discussion has been focussed on platform-dependent low-level sandbox implementation. I took a stab at writing something that can be used by portable code. It's basically versions of `call-process` and `make-process` specialised for running batch-mode Emacs in a sandbox. The attached patch is a straw man proposal but that should serve as a starting point [...] Content analysis details: (3.7 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 3.7 FAKE_REPLY_B No description available. --Apple-Mail=_75BBA58D-B918-40D7-B1FE-10C494228A76 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii So far the discussion has been focussed on platform-dependent low-level = sandbox implementation. I took a stab at writing something that can be = used by portable code. It's basically versions of `call-process` and `make-process` specialised = for running batch-mode Emacs in a sandbox. The attached patch is a straw = man proposal but that should serve as a starting point for agreement on = what the interface might look like. It's only been "tested" on macOS, and there will of course be ERT tests = as well before it's ready. Everything can be changed. The idea is to have something that could be used from alpa-admin.el or = similar, and for running background Elisp byte-compilation. It uses `make-process` rather than the simpler `start-process` for = running an asynchronous Emacs because the former seemed to give greater = control. There is currently only one sandbox parameter: the list of = directories to make available for reading. Maybe there should be a list = of writable directories as well? We could also consider higher-level primitives, for example something = that takes a Lisp expression to evaluate and returns the Lisp result, = taking care of the intermediate printing and reading. --Apple-Mail=_75BBA58D-B918-40D7-B1FE-10C494228A76 Content-Disposition: attachment; filename=0001-platform-independent-sandbox-interface.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-platform-independent-sandbox-interface.patch" Content-Transfer-Encoding: quoted-printable =46rom=201dfea4588286ec4177619bd5d20502803a98c4c0=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= <mattiase@HIDDEN>=0ADate:=20Fri,=2017=20Sep=202021=2009:30:53=20+0200=0A= Subject:=20[PATCH]=20platform-independent=20sandbox=20interface=0A=0A---=0A= =20lisp/sandbox.el=20|=2077=20= +++++++++++++++++++++++++++++++++++++++++++++++++=0A=201=20file=20= changed,=2077=20insertions(+)=0A=20create=20mode=20100644=20= lisp/sandbox.el=0A=0Adiff=20--git=20a/lisp/sandbox.el=20= b/lisp/sandbox.el=0Anew=20file=20mode=20100644=0Aindex=20= 0000000000..a8069d59c7=0A---=20/dev/null=0A+++=20b/lisp/sandbox.el=0A@@=20= -0,0=20+1,77=20@@=0A+;;;=20-*-=20lexical-binding:=20t=20-*-=0A+=0A= +(defconst=20sandbox-mechanism=0A+=20=20;;=20FIXME:=20make=20it=20a=20= defcustom?=20What=20about=20other=20systems?=0A+=20=20(cond=20((eq=20= system-type=20'darwin)=20'darwin)=0A+=20=20=20=20=20=20=20=20((eq=20= system-type=20'gnu/linux)=20'bwrap)))=0A+=0A+(defun=20= sandbox-available-p=20()=0A+=20=20"Non-nil=20if=20a=20sandboxing=20= mechanism=20is=20available."=0A+=20=20;;=20FIXME:=20We=20should=20check=20= for=20availability=20of=20bwrap=20etc.=0A+=20=20(not=20(null=20= sandbox-mechanism)))=0A+=0A+(defun=20sandbox--program-args=20= (sandbox-spec=20prog)=0A+=20=20"Return=20(PROGRAM=20.=20ARGS)=20for=20= running=20PROG=20according=20to=20SANDBOX-SPEC."=0A+=20=20(let=20= ((allow-read-dirs=20(plist-get=20sandbox-spec=20:allow-read-dirs)))=0A+=20= =20=20=20;;=20FIXME:=20Would=20`:allow-write-dirs'=20make=20sense=20and=20= be=20useful?=0A+=20=20=20=20(pcase-exhaustive=20sandbox-mechanism=0A+=20=20= =20=20=20=20('darwin=0A+=20=20=20=20=20=20=20(list=20prog=20"--eval"=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20(prin1-to-string=20= `(darwin-sandbox-enter=20',allow-read-dirs))))=0A+=20=20=20=20=20=20= ('bwrap=0A+=20=20=20=20=20=20=20;;=20FIXME:=20with=20seccomp?=0A+=20=20=20= =20=20=20=20`("bwrap"=0A+=20=20=20=20=20=20=20=20=20"--unshare-all"=0A+=20= =20=20=20=20=20=20=20=20"--dev"=20"/dev"=0A+=20=20=20=20=20=20=20=20=20= "--proc"=20"/proc"=0A+=20=20=20=20=20=20=20=20=20"--tmpfs"=20"/tmp"=0A+=20= =20=20=20=20=20=20=20=20,@(mapcan=20(lambda=20(dir)=20(let=20((d=20= (expand-file-name=20dir)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20= "--ro-bind"=20d=20d)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20allow-read-dirs)=0A+=20=20=20=20=20=20=20=20=20,prog)))))=0A+=0A= +(defun=20sandbox--emacs-command=20(sandbox-spec=20args)=0A+=20=20(let*=20= ((emacs=20(expand-file-name=20invocation-name=20invocation-directory))=0A= +=20=20=20=20=20=20=20=20=20(program-args=20(sandbox--program-args=20= sandbox-spec=20emacs)))=0A+=20=20=20=20`(,@program-args=20"--batch"=20= ,@args)))=0A+=0A+(defun=20sandbox-run-emacs=20(sandbox-spec=20= destination=20args)=0A+=20=20"Run=20sandboxed=20Emacs=20in=20batch=20= mode,=20synchronously.=0A+SANDBOX-SPEC=20is=20a=20sandbox=20= specification=20plist.=20=20Currently=20defined=20key:=0A+=20= `:allow-read-dirs'=20--=20the=20value=20is=20a=20list=20of=20directories=20= that=20can=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20be=20read=20from=20(but=20not=20written=20to).=0A+DESTINATION=20= is=20as=20in=20`call-process'.=0A+ARGS=20is=20a=20list=20of=20= command-line=20arguments=20passed=20to=20the=20sandboxed=20Emacs.=0A= +Return=20value=20is=20as=20in=20`call-process'.=0A+=0A+Depending=20on=20= the=20platform,=20the=20sandbox=20restrictions=20do=20not=20necessarily=0A= +take=20effect=20until=20Emacs=20has=20been=20initialised=20and=20loaded=20= the=20site=20and=20user=0A+init=20files.=20=20If=20that=20is=20not=20= desirable,=20suppress=20their=20use=20by=20adding=20the=0A+corresponding=20= flags=20(eg=20\"-Q\")=20to=20ARGS."=0A+=20=20(let=20((command=20= (sandbox--emacs-command=20sandbox-spec=20args)))=0A+=20=20=20=20(apply=20= #'call-process=20(car=20command)=20nil=20destination=20nil=20(cdr=20= command))))=0A+=0A+(defun=20sandbox-start-emacs=20(sandbox-spec=20params=20= args)=0A+=20=20"Run=20sandboxed=20Emacs=20in=20batch=20mode,=20= asynchronously.=0A+SANDBOX-SPEC=20is=20a=20sandbox=20specification=20= plist.=20=20Currently=20defined=20key:=0A+=20`:allow-read-dirs'=20--=20= the=20value=20is=20a=20list=20of=20directories=20that=20can=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20be=20read=20= from=20(but=20not=20written=20to).=0A+ARGS=20is=20a=20list=20of=20= command-line=20arguments=20passed=20to=20the=20sandboxed=20Emacs.=0A= +PARAMS=20is=20a=20plist=20of=20parameters=20passed=20to=20= `make-process'.=20=20Do=20not=0A+=20=20supply=20`:command';=20it=20will=20= be=20overridden=20by=20ARGS.=0A+Return=20value=20is=20as=20in=20= `make-process'.=0A+=0A+Depending=20on=20the=20platform,=20the=20sandbox=20= restrictions=20do=20not=20necessarily=0A+take=20effect=20until=20Emacs=20= has=20been=20initialised=20and=20loaded=20the=20site=20and=20user=0A= +init=20files.=20=20If=20that=20is=20not=20desirable,=20suppress=20their=20= use=20by=20adding=20the=0A+corresponding=20flags=20(eg=20\"-Q\")=20to=20= ARGS."=0A+=20=20(let*=20((command=20(sandbox--emacs-command=20= sandbox-spec=20args))=0A+=20=20=20=20=20=20=20=20=20(params=20= (copy-sequence=20params))=0A+=20=20=20=20=20=20=20=20=20(params=20= (plist-put=20params=20:command=20command)))=0A+=20=20=20=20(unless=20= (plist-member=20params=20:name)=0A+=20=20=20=20=20=20(setq=20params=20= (plist-put=20params=20:name=20"emacs")))=0A+=20=20=20=20(unless=20= (plist-member=20params=20:connection-type)=0A+=20=20=20=20=20=20(setq=20= params=20(plist-put=20params=20:connection-type=20'pipe)))=0A+=20=20=20=20= (apply=20#'make-process=20params)))=0A+=0A+(provide=20'sandbox)=0A--=20=0A= 2.21.1=20(Apple=20Git-122.3)=0A=0A= --Apple-Mail=_75BBA58D-B918-40D7-B1FE-10C494228A76 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii --Apple-Mail=_75BBA58D-B918-40D7-B1FE-10C494228A76--
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 5 Jul 2021 19:12:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jul 05 15:12:48 2021 Received: from localhost ([127.0.0.1]:46672 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1m0U1Q-0003ji-AR for submit <at> debbugs.gnu.org; Mon, 05 Jul 2021 15:12:48 -0400 Received: from mail-wr1-f46.google.com ([209.85.221.46]:37732) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1m0U1O-0003jU-3P for 45198 <at> debbugs.gnu.org; Mon, 05 Jul 2021 15:12:46 -0400 Received: by mail-wr1-f46.google.com with SMTP id i94so23249309wri.4 for <45198 <at> debbugs.gnu.org>; Mon, 05 Jul 2021 12:12:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=ncFwJWnsSClosJvOKRMYJlhpIUUNxuLOLs7ScB0vtsA=; b=sT7mQgLF/ikOJZtO1nIzzLJADcIIY/GrRpveEHiAuz14uKr5VpJ7kDo90MNYzxBrQ0 f/SI5yfAMgeTyji8GVkl7keXADW/K78+MfbQyjic+NlWQcwNvU88rXHeeQbe+9oGcDbZ EL5lbWOYM3QcSUFfd7b2Y0dwVRTaMsRw+1OJt56eJKA17tT2c63DjoSVTLE2WmgWgIHA BbRFR2+3TOsiy22YnzX9++l50eBGScBfYO7lvfdfj+xNS/fQuQ9OhxHC/aC0VgXEZ5Iz knOvr6MgBqlp0UZr9LJZx+WAKX+p/CTMF1eP6TPe/cqzwCII6Ll/QJtdErdLrwVQ28/h wc7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=ncFwJWnsSClosJvOKRMYJlhpIUUNxuLOLs7ScB0vtsA=; b=eL6c02C6QYxvBPrzkGxsZJgtIJaONTj+bYgyELkz71YYtar8Gq1UI3U6D7fl/tanP/ 1hZ5lYEaQoJmGtooC/Qf5eFI41iK9xOjibXd9jK8By+tvxMUUZ6LT5CzmxOjjKIS+4Dn 1FIF5GY+JGE1CsZz+5IY8RTX1WBHQf5Segdw10cfYjQn7qE+5hN2HAKc9qZXB/HAP6oM CoZOVFSxVVizBmtSZoPym2mFL9fztOMJ6o/40EKPkR4S1c6O/6WFla15LzQ1SP/ijII+ aGRiIpl14/Zm9ws9BD5iOqAr+u2F4MhgpJA1iL3/mZUbQwZ6GSIXy64f8esPlucH7jqu qr0Q== X-Gm-Message-State: AOAM532v2965CLIgtWVX54f096a/Cea085DfrjxmkNrDyGCoK45dgtX0 3KMZNpzmZzCci7V7GSnDpV0= X-Google-Smtp-Source: ABdhPJzINWIMMPIWuPmtp2CA2y5btG8K1l3XFL2Bw5+fR9ADUIh1wIhJOjnfCIs23VOGYHskK1cQJQ== X-Received: by 2002:a5d:4282:: with SMTP id k2mr12469261wrq.6.1625512360399; Mon, 05 Jul 2021 12:12:40 -0700 (PDT) Received: from smtpclient.apple ([46.128.198.100]) by smtp.gmail.com with ESMTPSA id a186sm350802wme.25.2021.07.05.12.12.39 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Jul 2021 12:12:40 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.100.0.2.22\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: Philipp <p.stephani2@HIDDEN> In-Reply-To: <jwvlf9f3c7i.fsf-monnier+emacs@HIDDEN> Date: Mon, 5 Jul 2021 21:12:39 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <CDC57E2E-D7A1-4DCA-BFBD-C182589F0FCD@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <jwva6pwalxc.fsf-monnier+emacs@HIDDEN> <83o8ecvnok.fsf@HIDDEN> <jwv5z0k7qeg.fsf-monnier+emacs@HIDDEN> <83lf9gvktv.fsf@HIDDEN> <jwv7dl069cy.fsf-monnier+emacs@HIDDEN> <83im4kvi4e.fsf@HIDDEN> <jwv1rb864yg.fsf-monnier+emacs@HIDDEN> <83blacun30.fsf@HIDDEN> <jwvlf9f3c7i.fsf-monnier+emacs@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> X-Mailer: Apple Mail (2.3654.100.0.2.22) X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, Eli Zaretskii <eliz@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) > Am 18.04.2021 um 16:25 schrieb Stefan Monnier = <monnier@HIDDEN>: >=20 >>> The whole point of the sandboxing exercise is so as to be able to = have >>> flymake-mode in the hook without exposing yourself to >>> these vulnerabilities. >>=20 >> So we are going to introduce all this non-trivial machinery into = Emacs >> just to solve the Flymake use case? Is that reasonable from the >> project management POV, in your eyes? >=20 > To the extent that this machinery will only be used by those rare = places > that need it (e.g. flymake), yes, as long as the low-level interface > (e.g. the code that added the support for the `--seccomp` argument) is > simple enough. >=20 > BTW, in the context of GNU/Linux, an alternative to `--seccomp` is to > require the `bwrap` tool (that's what I use in the `elpa-admin.el` > scripts to run makefile rules from ELPA packages). >=20 I wouldn't call it an alternative, they are rather complementary = approaches, and I think we should require both for a sandbox that we = consider "hard enough". The --seccomp flag doesn't set up namespaces; = that's rather subtle and best done out-of-process by a dedicated tool = like bwrap. On the other hand, setting up a seccomp filter = out-of-process has the disadvantage that it needs to allow execve, = thereby increasing the attack surface quite a bit. The sandboxing I'd = have in mind would be a combination of bwrap (with namespaces and a = seccomp filter that allows execve) and Emacs's own seccomp filter = (banning execve).=
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Apr 2021 15:42:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Apr 19 11:42:52 2021 Received: from localhost ([127.0.0.1]:51780 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lYW32-0001Z1-GW for submit <at> debbugs.gnu.org; Mon, 19 Apr 2021 11:42:52 -0400 Received: from mail1453c50.megamailservers.eu ([91.136.14.53]:42084 helo=mail266c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1lYW31-0001Yo-33 for 45198 <at> debbugs.gnu.org; Mon, 19 Apr 2021 11:42:51 -0400 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1618846923; bh=xBd6e47VXmRBCuDBMZ53UfFjnQpv+/r6mf8FcgoaPTE=; h=From:Subject:Date:In-Reply-To:Cc:To:References:From; b=Ue47454X4EDzE/vfa/SfAgkDR7iyY2CZgbNAp1UlB+76LcUL875xncEznGKhVjcE4 W9rcn9GVVcTDioKZ+FaTCMXvxlwNjHk5I4Wg3kmFgriHBJm8eQFw7Rcd6FGuaVi1HC 4T6lI0bhKA6D1w1Cjhj95C7fEDGqsksdnfcA9vwY= Feedback-ID: mattiase@HIDDEN Received: from stanniol.lan (c-b952e353.032-75-73746f71.bbcust.telenor.se [83.227.82.185]) (authenticated bits=0) by mail266c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 13JFfwNl003772; Mon, 19 Apr 2021 15:42:00 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Message-Id: <F61CF0B6-6AB0-415C-BAD4-54273D0DD476@HIDDEN> Content-Type: multipart/mixed; boundary="Apple-Mail=_59FECC85-2A93-4A38-B1A5-7709DA915415" Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode Date: Mon, 19 Apr 2021 17:41:58 +0200 In-Reply-To: <E967667D-698C-47FE-9E95-429C30C83907@HIDDEN> To: Philipp <p.stephani2@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <AAAE6F07-7424-4632-B2DB-528649DB412A@HIDDEN> <jwvim4k6ade.fsf-monnier+emacs@HIDDEN> <78F41D0B-D2F6-444C-9B5C-9C50CFF2CFBD@HIDDEN> <E967667D-698C-47FE-9E95-429C30C83907@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A742F16.607DA4CA.0088, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=VISjYOHX c=1 sm=1 tr=0 a=von4qPfY+hyqc0zmWf0tYQ==:117 a=von4qPfY+hyqc0zmWf0tYQ==:17 a=M51BFTxLslgA:10 a=pGLkceISAAAA:8 a=P_jWLAUnFZnPBouWQNAA:9 a=CjuIK1q_8ugA:10 a=2i1jUgeGfihAGWfHL1kA:9 a=B2y7HmGcmWMA:10 X-Origin-Country: SE X-Spam-Score: 1.4 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 17 apr. 2021 kl. 21.42 skrev Philipp <p.stephani2@HIDDEN>: >> --- a/lisp/subr.el > > Should this maybe be in a platform-specific file such as ns-fns.el (like dos-fns.el, w32-fns.el)? Yes, and thank you for noticing. Now moved. Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, Stefan Monnier <monnier@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) --Apple-Mail=_59FECC85-2A93-4A38-B1A5-7709DA915415 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii 17 apr. 2021 kl. 21.42 skrev Philipp <p.stephani2@HIDDEN>: >> --- a/lisp/subr.el >=20 > Should this maybe be in a platform-specific file such as ns-fns.el = (like dos-fns.el, w32-fns.el)? Yes, and thank you for noticing. Now moved. > I don't think we use the "darwin-" prefix anywhere else in Emacs. = Maybe use a "ns-" prefix. As Alan correctly noted this has nothing with NS to do per se, so I'm = staying with darwin- for now. > Also I think such internal functions commonly have an "internal" piece = somewhere in their name, e.g. "ns-enter-sandbox-internal". Maybe, but there is already a platform-specific prefix and a clear note = in the doc string that it's internal. Doesn't that suffice? >> + (darwin-sandbox-init >=20 > Can you also refer to the documents listed below, so that readers = aren't wondering what this syntax means? Thank you but that sounds unlikely since the PROFILE argument is = described as SBPL in the function doc string. >> + (concat "(version 1)\n" >=20 > Since this uses Lisp syntax, maybe use (prin1-to-string `(...))? I'd rather not, since it's not exactly Emacs Lisp syntax. I'd like to = avoiding conflating the two as far as possible. However... >> + (format "(allow file-read* (subpath = %S))\n" dir)) >=20 > Are you sure that the string quoting syntaxes are compatible? It had me concerned when I wrote it too but it didn't seem possible to = cause a false positive that way -- false negatives (access denial) at = worst. In particular, names containing backslashes or double quotes work = correctly. >> + doc: /* Enter a sandbox whose permitted access is curtailed = by PROFILE. >> +Already open descriptors can be used freely. >> +PROFILE is a string in the macOS sandbox profile language, >> +a set of rules in a Lisp-like syntax. >=20 > I'd also refer to the Chromium document here, otherwise C-h f for this = function won't be very useful. I wouldn't worry -- an Emacs developer who doesn't already know it is = more likely to duckduckgo "macos sandbox profile language" and get an = up-to-date reference. >> + if (sandbox_init_with_parameters (SSDATA (profile), 0, NULL, &err) = !=3D 0) >=20 > If you're using SSDATA, better check that the string doesn't contain = embedded null bytes. There is really no way that that could ever be a problem but I added a = check just in case. > Also does this need to be encoded somehow? What happens if the string = contains non-Unicode characters like raw bytes? Then there will be false negatives (permissions not granted) or syntax = errors. This is just a system call wrapper; the caller is responsible = for using reasonable arguments. >> + error ("sandbox error: %s", err); >=20 > This looks like an error that clients could handle, so I'd signal a = specific error symbol here. That error just indicates a programming mistake. Nobody is going to = handle it. >> diff --git a/test/src/emacs-tests.el b/test/src/emacs-tests.el >=20 > This should probably be in subr-tests.el since it tests a function in = subr.el. Right again, moved to a new file. > I like tests that are somewhat repetitive but more decoupled and = easier to read better than tests with factored-out assertions. There is merit to such a style but the more important concern in this = case is to avoid false positives and negatives, and make the tests = robust in that regard. It is very easy to make a mistake that renders a test meaningless, = especially when testing a mechanism that does not alter the value of a = computation but merely allows it to proceed or causes it to fail. The = test has now been rewritten in a kind of oracular-combinatorial style = which is effective in these situations. Doing so also improved coverage. Thank you very much for your review and comments! I'd like to push the = resulting patch but perhaps it and the rest of the sandbox development = should go into a separate branch? --Apple-Mail=_59FECC85-2A93-4A38-B1A5-7709DA915415 Content-Disposition: attachment; filename=0001-Add-macOS-sandboxing-bug-45198.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Add-macOS-sandboxing-bug-45198.patch" Content-Transfer-Encoding: quoted-printable =46rom=20c5006dc5260f547ff132fd42c580ea0e0fb227a7=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= <mattiase@HIDDEN>=0ADate:=20Sat,=2017=20Apr=202021=2020:53:39=20+0200=0A= Subject:=20[PATCH]=20Add=20macOS=20sandboxing=20(bug#45198)=0A=0AThis=20= is=20the=20corresponding=20low-level=20sandboxing=20facility=20= corresponding=0Ato=20the=20recently=20added=20Seccomp=20for=20Linux.=20=20= `darwin-sandbox-init`=20gives=0Adirect=20access=20to=20the=20system=20= sandboxing=20call;=20`darwin-sandbox-enter`=20is=0Aa=20wrapper=20that=20= takes=20a=20list=20of=20directories=20under=20which=20files=20can=20be=0A= read.=20=20These=20should=20be=20considered=20internal=20mechanisms=20= for=20now.=0A=0A*=20lisp/darwin-fns.el:=20New=20file.=0A*=20= lisp/loadup.el:=20Load=20it.=0A*=20src/sysdep.c=20= (Fdarwin_sandbox_init):=20New=20function.=0A*=20= test/lisp/darwin-fns-tests.el:=20New=20file.=0A---=0A=20= lisp/darwin-fns.el=20=20=20=20=20=20=20=20=20=20=20=20|=2040=20= ++++++++++++++++=0A=20lisp/loadup.el=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20|=20=202=20+=0A=20src/sysdep.c=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20|=2034=20+++++++++++++=0A=20= test/lisp/darwin-fns-tests.el=20|=2090=20= +++++++++++++++++++++++++++++++++++=0A=204=20files=20changed,=20166=20= insertions(+)=0A=20create=20mode=20100644=20lisp/darwin-fns.el=0A=20= create=20mode=20100644=20test/lisp/darwin-fns-tests.el=0A=0Adiff=20--git=20= a/lisp/darwin-fns.el=20b/lisp/darwin-fns.el=0Anew=20file=20mode=20100644=0A= index=200000000000..e45aaa0c4e=0A---=20/dev/null=0A+++=20= b/lisp/darwin-fns.el=0A@@=20-0,0=20+1,40=20@@=0A+;;;=20darwin-fns.el=20= ---=20Darwin-specific=20functions=20=20-*-=20lexical-binding:=20t=20-*-=0A= +=0A+;;=20Copyright=20(C)=202021=20Free=20Software=20Foundation,=20Inc.=0A= +=0A+;;=20This=20file=20is=20part=20of=20GNU=20Emacs.=0A+=0A+;;=20GNU=20= Emacs=20is=20free=20software:=20you=20can=20redistribute=20it=20and/or=20= modify=0A+;;=20it=20under=20the=20terms=20of=20the=20GNU=20General=20= Public=20License=20as=20published=20by=0A+;;=20the=20Free=20Software=20= Foundation,=20either=20version=203=20of=20the=20License,=20or=0A+;;=20= (at=20your=20option)=20any=20later=20version.=0A+=0A+;;=20GNU=20Emacs=20= is=20distributed=20in=20the=20hope=20that=20it=20will=20be=20useful,=0A= +;;=20but=20WITHOUT=20ANY=20WARRANTY;=20without=20even=20the=20implied=20= warranty=20of=0A+;;=20MERCHANTABILITY=20or=20FITNESS=20FOR=20A=20= PARTICULAR=20PURPOSE.=20=20See=20the=0A+;;=20GNU=20General=20Public=20= License=20for=20more=20details.=0A+=0A+;;=20You=20should=20have=20= received=20a=20copy=20of=20the=20GNU=20General=20Public=20License=0A+;;=20= along=20with=20GNU=20Emacs.=20=20If=20not,=20see=20= <https://www.gnu.org/licenses/>.=0A+=0A+;;;=20Code:=0A+=0A+(defun=20= darwin-sandbox-enter=20(dirs)=0A+=20=20"Enter=20a=20sandbox=20only=20= permitting=20reading=20files=20under=20DIRS.=0A+DIRS=20is=20a=20list=20= of=20directory=20names.=20=20Most=20other=20operations=20such=20as=0A= +writing=20files=20and=20network=20access=20are=20disallowed.=0A= +Existing=20open=20descriptors=20can=20still=20be=20used=20freely.=0A+=0A= +This=20is=20not=20a=20supported=20interface=20and=20is=20for=20internal=20= use=20only."=0A+=20=20(darwin-sandbox-init=0A+=20=20=20(concat=20= "(version=201)\n"=0A+=20=20=20=20=20=20=20=20=20=20=20"(deny=20= default)\n"=0A+=20=20=20=20=20=20=20=20=20=20=20;;=20Emacs=20seems=20to=20= need=20/dev/null;=20allowing=20it=20does=20no=20harm.=0A+=20=20=20=20=20=20= =20=20=20=20=20"(allow=20file-read*=20(path=20\"/dev/null\"))\n"=0A+=20=20= =20=20=20=20=20=20=20=20=20(mapconcat=20(lambda=20(dir)=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(format=20= "(allow=20file-read*=20(subpath=20%S))\n"=20dir))=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20dirs=20""))))=0A+=0A= +(provide=20'darwin-fns)=0A+=0A+;;;=20darwin-fns.el=20ends=20here=0Adiff=20= --git=20a/lisp/loadup.el=20b/lisp/loadup.el=0Aindex=20= d6cfcd6fc8..a6a7251d4b=20100644=0A---=20a/lisp/loadup.el=0A+++=20= b/lisp/loadup.el=0A@@=20-324,6=20+324,8=20@@=0A=20=20=20=20=20=20=20= (load=20"term/pc-win")=0A=20=20=20=20=20=20=20(load=20"ls-lisp")=0A=20=20= =20=20=20=20=20(load=20"disp-table")))=20;=20needed=20to=20setup=20= ibm-pc=20char=20set,=20see=20internal.el=0A+(if=20(eq=20system-type=20= 'darwin)=0A+=20=20=20=20(load=20"darwin-fns"))=0A=20(if=20(featurep=20= 'ns)=0A=20=20=20=20=20(progn=0A=20=20=20=20=20=20=20(load=20= "term/common-win")=0Adiff=20--git=20a/src/sysdep.c=20b/src/sysdep.c=0A= index=20d940acc4e0..4ea1f0050a=20100644=0A---=20a/src/sysdep.c=0A+++=20= b/src/sysdep.c=0A@@=20-4286,8=20+4286,42=20@@=20str_collate=20= (Lisp_Object=20s1,=20Lisp_Object=20s2,=0A=20}=0A=20#endif=09/*=20= WINDOWSNT=20*/=0A=20=0A+#ifdef=20DARWIN_OS=0A+=0A+/*=20This=20function=20= prototype=20is=20not=20in=20the=20platform=20header=20files.=0A+=20=20=20= See=20= https://reverse.put.as/wp-content/uploads/2011/09/Apple-Sandbox-Guide-v1.0= .pdf=0A+=20=20=20and=20= https://chromium.googlesource.com/chromium/src/+/master/sandbox/mac/seatbe= lt_sandbox_design.md=20*/=0A+int=20sandbox_init_with_parameters(const=20= char=20*profile,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20uint64_t=20flags,=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20const=20char=20*const=20parameters[],=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20char=20**errorbuf);=0A+=0A+DEFUN=20("darwin-sandbox-init",=20= Fdarwin_sandbox_init,=20Sdarwin_sandbox_init,=0A+=20=20=20=20=20=20=201,=20= 1,=200,=0A+=20=20=20=20=20=20=20doc:=20/*=20Enter=20a=20sandbox=20whose=20= permitted=20access=20is=20curtailed=20by=20PROFILE.=0A+Already=20open=20= descriptors=20can=20be=20used=20freely.=0A+PROFILE=20is=20a=20string=20= in=20the=20macOS=20sandbox=20profile=20language,=0A+a=20set=20of=20rules=20= in=20a=20Lisp-like=20syntax.=0A+=0A+This=20is=20not=20a=20supported=20= interface=20and=20is=20for=20internal=20use=20only.=20*/)=0A+=20=20= (Lisp_Object=20profile)=0A+{=0A+=20=20CHECK_STRING=20(profile);=0A+=20=20= if=20(memchr=20(SSDATA=20(profile),=20'\0',=20SBYTES=20(profile)))=0A+=20= =20=20=20error=20("NUL=20in=20sandbox=20profile");=0A+=20=20char=20*err=20= =3D=20NULL;=0A+=20=20if=20(sandbox_init_with_parameters=20(SSDATA=20= (profile),=200,=20NULL,=20&err)=20!=3D=200)=0A+=20=20=20=20error=20= ("sandbox=20error:=20%s",=20err);=0A+=20=20return=20Qnil;=0A+}=0A+=0A= +#endif=09/*=20DARWIN_OS=20*/=0A+=0A=20void=0A=20syms_of_sysdep=20(void)=0A= =20{=0A=20=20=20defsubr=20(&Sget_internal_run_time);=0A+#ifdef=20= DARWIN_OS=0A+=20=20defsubr=20(&Sdarwin_sandbox_init);=0A+#endif=0A=20}=0A= diff=20--git=20a/test/lisp/darwin-fns-tests.el=20= b/test/lisp/darwin-fns-tests.el=0Anew=20file=20mode=20100644=0Aindex=20= 0000000000..1e426407a1=0A---=20/dev/null=0A+++=20= b/test/lisp/darwin-fns-tests.el=0A@@=20-0,0=20+1,90=20@@=0A+;;;=20= darwin-fns-tests.el=20---=20tests=20for=20darwin-fns.el=20=20-*-=20= lexical-binding:=20t=20-*-=0A+=0A+;;=20Copyright=20(C)=202021=20=20Free=20= Software=20Foundation,=20Inc.=0A+=0A+;;=20This=20file=20is=20part=20of=20= GNU=20Emacs.=0A+=0A+;;=20GNU=20Emacs=20is=20free=20software:=20you=20can=20= redistribute=20it=20and/or=20modify=0A+;;=20it=20under=20the=20terms=20= of=20the=20GNU=20General=20Public=20License=20as=20published=0A+;;=20by=20= the=20Free=20Software=20Foundation,=20either=20version=203=20of=20the=20= License,=0A+;;=20or=20(at=20your=20option)=20any=20later=20version.=0A+=0A= +;;=20GNU=20Emacs=20is=20distributed=20in=20the=20hope=20that=20it=20= will=20be=20useful,=20but=0A+;;=20WITHOUT=20ANY=20WARRANTY;=20without=20= even=20the=20implied=20warranty=20of=0A+;;=20MERCHANTABILITY=20or=20= FITNESS=20FOR=20A=20PARTICULAR=20PURPOSE.=20=20See=20the=20GNU=0A+;;=20= General=20Public=20License=20for=20more=20details.=0A+=0A+;;=20You=20= should=20have=20received=20a=20copy=20of=20the=20GNU=20General=20Public=20= License=0A+;;=20along=20with=20GNU=20Emacs.=20=20If=20not,=20see=20= <https://www.gnu.org/licenses/>.=0A+=0A+(require=20'ert)=0A+=0A+(defun=20= darwin-fns-tests--run-emacs=20(expr1=20expr2)=0A+=20=20"Run=20Emacs=20in=20= batch=20mode=20and=20evaluate=20EXPR1=20and=20EXPR2.=0A+Return=20= (EXIT-STATUS=20.=20OUTPUT),=20where=20OUTPUT=20is=20stderr=20and=20= stdout."=0A+=20=20(let=20((emacs=20(expand-file-name=20invocation-name=20= invocation-directory))=0A+=20=20=20=20=20=20=20=20(process-environment=20= nil))=0A+=20=20=20=20(with-temp-buffer=0A+=20=20=20=20=20=20(let=20((res=20= (call-process=20emacs=20nil=20t=20nil=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20"--quick"=20= "--batch"=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(format=20"--eval=3D%S"=20expr1)=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(format=20"--eval=3D%S"=20expr2))))=0A+=20=20=20=20=20=20=20=20= (cons=20res=20(buffer-string))))))=0A+=0A+(ert-deftest=20= darwin-fns-sandbox=20()=0A+=20=20(skip-unless=20(eq=20system-type=20= 'darwin))=0A+=20=20;;=20Test=20file=20reading=20and=20writing=20under=20= various=20sandboxing=20conditions.=0A+=20=20(let*=20((some-text=20= "abcdef")=0A+=20=20=20=20=20=20=20=20=20(new-text=20"ghijkl")=0A+=20=20=20= =20=20=20=20=20=20(test-file=20(file-truename=20(make-temp-file=20= "test")))=0A+=20=20=20=20=20=20=20=20=20(file-dir=20(file-name-directory=20= test-file)))=0A+=20=20=20=20(unwind-protect=0A+=20=20=20=20=20=20=20=20= (dolist=20(mode=20'(read=20write))=0A+=20=20=20=20=20=20=20=20=20=20= (ert-info=20((symbol-name=20mode)=20:prefix=20"mode:=20")=0A+=20=20=20=20= =20=20=20=20=20=20=20=20(dolist=20(sandbox=20'(allow-all=20deny-all=20= allow-read))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20(ert-info=20= ((symbol-name=20sandbox)=20:prefix=20"sandbox:=20")=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20;;=20Prepare=20initial=20file=20contents.=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(with-temp-buffer=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(insert=20some-text)=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(write-file=20= test-file))=0A+=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let*=20= ((sandbox-form=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(pcase-exhaustive=20sandbox=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20('allow-all=20nil)=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20('deny-all=20'(darwin-sandbox-enter=20nil))=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20('allow-read=20= `(darwin-sandbox-enter=20'(,file-dir)))))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(action-form=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(pcase-exhaustive=20= mode=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20('read=20`(progn=20(find-file-literally=20,test-file)=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(message=20"OK:=20%s"=20= (buffer-string))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20('write=20`(with-temp-buffer=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(insert=20,new-text)=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20(write-file=20,test-file)))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(allowed=20(or=20(eq=20sandbox=20= 'allow-all)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(and=20(eq=20sandbox=20= 'allow-read)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(eq=20= mode=20'read))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(res-out=20(darwin-fns-tests--run-emacs=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20sandbox-form=20action-form))=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20(exit-status=20(car=20res-out))=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (output=20(cdr=20res-out))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(file-contents=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(with-temp-buffer=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (insert-file-contents-literally=20test-file)=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(buffer-string))))=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20allowed=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(should=20= (equal=20exit-status=200))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(should-not=20(equal=20exit-status=200)))=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(when=20(eq=20mode=20'read)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20allowed=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (should=20(equal=20output=20(format=20"OK:=20%s\n"=20some-text)))=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(should-not=20= (string-search=20some-text=20output))))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(should=20(equal=20file-contents=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(if=20(and=20(eq=20mode=20'write)=20allowed)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20new-text=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= some-text))))))))=0A+=0A+=20=20=20=20=20=20;;=20Clean=20up.=0A+=20=20=20=20= =20=20(ignore-errors=20(delete-file=20test-file)))))=0A+=0A+=0A+(provide=20= 'darwin-fns-tests)=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=0A= --Apple-Mail=_59FECC85-2A93-4A38-B1A5-7709DA915415--
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Apr 2021 15:42:14 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Apr 19 11:42:14 2021 Received: from localhost ([127.0.0.1]:51774 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lYW2P-0001Xw-Nh for submit <at> debbugs.gnu.org; Mon, 19 Apr 2021 11:42:14 -0400 Received: from mail1451c50.megamailservers.eu ([91.136.14.51]:42030 helo=mail266c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1lYW2M-0001Xf-9g for 45198 <at> debbugs.gnu.org; Mon, 19 Apr 2021 11:42:11 -0400 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1618846923; bh=xBd6e47VXmRBCuDBMZ53UfFjnQpv+/r6mf8FcgoaPTE=; h=From:Subject:Date:In-Reply-To:Cc:To:References:From; b=Ue47454X4EDzE/vfa/SfAgkDR7iyY2CZgbNAp1UlB+76LcUL875xncEznGKhVjcE4 W9rcn9GVVcTDioKZ+FaTCMXvxlwNjHk5I4Wg3kmFgriHBJm8eQFw7Rcd6FGuaVi1HC 4T6lI0bhKA6D1w1Cjhj95C7fEDGqsksdnfcA9vwY= Feedback-ID: mattiase@HIDDEN Received: from stanniol.lan (c-b952e353.032-75-73746f71.bbcust.telenor.se [83.227.82.185]) (authenticated bits=0) by mail266c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 13JFfwNl003772; Mon, 19 Apr 2021 15:42:00 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Message-Id: <F61CF0B6-6AB0-415C-BAD4-54273D0DD476@HIDDEN> Content-Type: multipart/mixed; boundary="Apple-Mail=_59FECC85-2A93-4A38-B1A5-7709DA915415" Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode Date: Mon, 19 Apr 2021 17:41:58 +0200 In-Reply-To: <E967667D-698C-47FE-9E95-429C30C83907@HIDDEN> To: Philipp <p.stephani2@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <AAAE6F07-7424-4632-B2DB-528649DB412A@HIDDEN> <jwvim4k6ade.fsf-monnier+emacs@HIDDEN> <78F41D0B-D2F6-444C-9B5C-9C50CFF2CFBD@HIDDEN> <E967667D-698C-47FE-9E95-429C30C83907@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A742F16.607DA4CA.0088, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=VISjYOHX c=1 sm=1 tr=0 a=von4qPfY+hyqc0zmWf0tYQ==:117 a=von4qPfY+hyqc0zmWf0tYQ==:17 a=M51BFTxLslgA:10 a=pGLkceISAAAA:8 a=P_jWLAUnFZnPBouWQNAA:9 a=CjuIK1q_8ugA:10 a=2i1jUgeGfihAGWfHL1kA:9 a=B2y7HmGcmWMA:10 X-Origin-Country: SE X-Spam-Score: 1.4 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 17 apr. 2021 kl. 21.42 skrev Philipp <p.stephani2@HIDDEN>: >> --- a/lisp/subr.el > > Should this maybe be in a platform-specific file such as ns-fns.el (like dos-fns.el, w32-fns.el)? Yes, and thank you for noticing. Now moved. Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, Stefan Monnier <monnier@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) --Apple-Mail=_59FECC85-2A93-4A38-B1A5-7709DA915415 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii 17 apr. 2021 kl. 21.42 skrev Philipp <p.stephani2@HIDDEN>: >> --- a/lisp/subr.el >=20 > Should this maybe be in a platform-specific file such as ns-fns.el = (like dos-fns.el, w32-fns.el)? Yes, and thank you for noticing. Now moved. > I don't think we use the "darwin-" prefix anywhere else in Emacs. = Maybe use a "ns-" prefix. As Alan correctly noted this has nothing with NS to do per se, so I'm = staying with darwin- for now. > Also I think such internal functions commonly have an "internal" piece = somewhere in their name, e.g. "ns-enter-sandbox-internal". Maybe, but there is already a platform-specific prefix and a clear note = in the doc string that it's internal. Doesn't that suffice? >> + (darwin-sandbox-init >=20 > Can you also refer to the documents listed below, so that readers = aren't wondering what this syntax means? Thank you but that sounds unlikely since the PROFILE argument is = described as SBPL in the function doc string. >> + (concat "(version 1)\n" >=20 > Since this uses Lisp syntax, maybe use (prin1-to-string `(...))? I'd rather not, since it's not exactly Emacs Lisp syntax. I'd like to = avoiding conflating the two as far as possible. However... >> + (format "(allow file-read* (subpath = %S))\n" dir)) >=20 > Are you sure that the string quoting syntaxes are compatible? It had me concerned when I wrote it too but it didn't seem possible to = cause a false positive that way -- false negatives (access denial) at = worst. In particular, names containing backslashes or double quotes work = correctly. >> + doc: /* Enter a sandbox whose permitted access is curtailed = by PROFILE. >> +Already open descriptors can be used freely. >> +PROFILE is a string in the macOS sandbox profile language, >> +a set of rules in a Lisp-like syntax. >=20 > I'd also refer to the Chromium document here, otherwise C-h f for this = function won't be very useful. I wouldn't worry -- an Emacs developer who doesn't already know it is = more likely to duckduckgo "macos sandbox profile language" and get an = up-to-date reference. >> + if (sandbox_init_with_parameters (SSDATA (profile), 0, NULL, &err) = !=3D 0) >=20 > If you're using SSDATA, better check that the string doesn't contain = embedded null bytes. There is really no way that that could ever be a problem but I added a = check just in case. > Also does this need to be encoded somehow? What happens if the string = contains non-Unicode characters like raw bytes? Then there will be false negatives (permissions not granted) or syntax = errors. This is just a system call wrapper; the caller is responsible = for using reasonable arguments. >> + error ("sandbox error: %s", err); >=20 > This looks like an error that clients could handle, so I'd signal a = specific error symbol here. That error just indicates a programming mistake. Nobody is going to = handle it. >> diff --git a/test/src/emacs-tests.el b/test/src/emacs-tests.el >=20 > This should probably be in subr-tests.el since it tests a function in = subr.el. Right again, moved to a new file. > I like tests that are somewhat repetitive but more decoupled and = easier to read better than tests with factored-out assertions. There is merit to such a style but the more important concern in this = case is to avoid false positives and negatives, and make the tests = robust in that regard. It is very easy to make a mistake that renders a test meaningless, = especially when testing a mechanism that does not alter the value of a = computation but merely allows it to proceed or causes it to fail. The = test has now been rewritten in a kind of oracular-combinatorial style = which is effective in these situations. Doing so also improved coverage. Thank you very much for your review and comments! I'd like to push the = resulting patch but perhaps it and the rest of the sandbox development = should go into a separate branch? --Apple-Mail=_59FECC85-2A93-4A38-B1A5-7709DA915415 Content-Disposition: attachment; filename=0001-Add-macOS-sandboxing-bug-45198.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Add-macOS-sandboxing-bug-45198.patch" Content-Transfer-Encoding: quoted-printable =46rom=20c5006dc5260f547ff132fd42c580ea0e0fb227a7=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= <mattiase@HIDDEN>=0ADate:=20Sat,=2017=20Apr=202021=2020:53:39=20+0200=0A= Subject:=20[PATCH]=20Add=20macOS=20sandboxing=20(bug#45198)=0A=0AThis=20= is=20the=20corresponding=20low-level=20sandboxing=20facility=20= corresponding=0Ato=20the=20recently=20added=20Seccomp=20for=20Linux.=20=20= `darwin-sandbox-init`=20gives=0Adirect=20access=20to=20the=20system=20= sandboxing=20call;=20`darwin-sandbox-enter`=20is=0Aa=20wrapper=20that=20= takes=20a=20list=20of=20directories=20under=20which=20files=20can=20be=0A= read.=20=20These=20should=20be=20considered=20internal=20mechanisms=20= for=20now.=0A=0A*=20lisp/darwin-fns.el:=20New=20file.=0A*=20= lisp/loadup.el:=20Load=20it.=0A*=20src/sysdep.c=20= (Fdarwin_sandbox_init):=20New=20function.=0A*=20= test/lisp/darwin-fns-tests.el:=20New=20file.=0A---=0A=20= lisp/darwin-fns.el=20=20=20=20=20=20=20=20=20=20=20=20|=2040=20= ++++++++++++++++=0A=20lisp/loadup.el=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20|=20=202=20+=0A=20src/sysdep.c=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20|=2034=20+++++++++++++=0A=20= test/lisp/darwin-fns-tests.el=20|=2090=20= +++++++++++++++++++++++++++++++++++=0A=204=20files=20changed,=20166=20= insertions(+)=0A=20create=20mode=20100644=20lisp/darwin-fns.el=0A=20= create=20mode=20100644=20test/lisp/darwin-fns-tests.el=0A=0Adiff=20--git=20= a/lisp/darwin-fns.el=20b/lisp/darwin-fns.el=0Anew=20file=20mode=20100644=0A= index=200000000000..e45aaa0c4e=0A---=20/dev/null=0A+++=20= b/lisp/darwin-fns.el=0A@@=20-0,0=20+1,40=20@@=0A+;;;=20darwin-fns.el=20= ---=20Darwin-specific=20functions=20=20-*-=20lexical-binding:=20t=20-*-=0A= +=0A+;;=20Copyright=20(C)=202021=20Free=20Software=20Foundation,=20Inc.=0A= +=0A+;;=20This=20file=20is=20part=20of=20GNU=20Emacs.=0A+=0A+;;=20GNU=20= Emacs=20is=20free=20software:=20you=20can=20redistribute=20it=20and/or=20= modify=0A+;;=20it=20under=20the=20terms=20of=20the=20GNU=20General=20= Public=20License=20as=20published=20by=0A+;;=20the=20Free=20Software=20= Foundation,=20either=20version=203=20of=20the=20License,=20or=0A+;;=20= (at=20your=20option)=20any=20later=20version.=0A+=0A+;;=20GNU=20Emacs=20= is=20distributed=20in=20the=20hope=20that=20it=20will=20be=20useful,=0A= +;;=20but=20WITHOUT=20ANY=20WARRANTY;=20without=20even=20the=20implied=20= warranty=20of=0A+;;=20MERCHANTABILITY=20or=20FITNESS=20FOR=20A=20= PARTICULAR=20PURPOSE.=20=20See=20the=0A+;;=20GNU=20General=20Public=20= License=20for=20more=20details.=0A+=0A+;;=20You=20should=20have=20= received=20a=20copy=20of=20the=20GNU=20General=20Public=20License=0A+;;=20= along=20with=20GNU=20Emacs.=20=20If=20not,=20see=20= <https://www.gnu.org/licenses/>.=0A+=0A+;;;=20Code:=0A+=0A+(defun=20= darwin-sandbox-enter=20(dirs)=0A+=20=20"Enter=20a=20sandbox=20only=20= permitting=20reading=20files=20under=20DIRS.=0A+DIRS=20is=20a=20list=20= of=20directory=20names.=20=20Most=20other=20operations=20such=20as=0A= +writing=20files=20and=20network=20access=20are=20disallowed.=0A= +Existing=20open=20descriptors=20can=20still=20be=20used=20freely.=0A+=0A= +This=20is=20not=20a=20supported=20interface=20and=20is=20for=20internal=20= use=20only."=0A+=20=20(darwin-sandbox-init=0A+=20=20=20(concat=20= "(version=201)\n"=0A+=20=20=20=20=20=20=20=20=20=20=20"(deny=20= default)\n"=0A+=20=20=20=20=20=20=20=20=20=20=20;;=20Emacs=20seems=20to=20= need=20/dev/null;=20allowing=20it=20does=20no=20harm.=0A+=20=20=20=20=20=20= =20=20=20=20=20"(allow=20file-read*=20(path=20\"/dev/null\"))\n"=0A+=20=20= =20=20=20=20=20=20=20=20=20(mapconcat=20(lambda=20(dir)=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(format=20= "(allow=20file-read*=20(subpath=20%S))\n"=20dir))=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20dirs=20""))))=0A+=0A= +(provide=20'darwin-fns)=0A+=0A+;;;=20darwin-fns.el=20ends=20here=0Adiff=20= --git=20a/lisp/loadup.el=20b/lisp/loadup.el=0Aindex=20= d6cfcd6fc8..a6a7251d4b=20100644=0A---=20a/lisp/loadup.el=0A+++=20= b/lisp/loadup.el=0A@@=20-324,6=20+324,8=20@@=0A=20=20=20=20=20=20=20= (load=20"term/pc-win")=0A=20=20=20=20=20=20=20(load=20"ls-lisp")=0A=20=20= =20=20=20=20=20(load=20"disp-table")))=20;=20needed=20to=20setup=20= ibm-pc=20char=20set,=20see=20internal.el=0A+(if=20(eq=20system-type=20= 'darwin)=0A+=20=20=20=20(load=20"darwin-fns"))=0A=20(if=20(featurep=20= 'ns)=0A=20=20=20=20=20(progn=0A=20=20=20=20=20=20=20(load=20= "term/common-win")=0Adiff=20--git=20a/src/sysdep.c=20b/src/sysdep.c=0A= index=20d940acc4e0..4ea1f0050a=20100644=0A---=20a/src/sysdep.c=0A+++=20= b/src/sysdep.c=0A@@=20-4286,8=20+4286,42=20@@=20str_collate=20= (Lisp_Object=20s1,=20Lisp_Object=20s2,=0A=20}=0A=20#endif=09/*=20= WINDOWSNT=20*/=0A=20=0A+#ifdef=20DARWIN_OS=0A+=0A+/*=20This=20function=20= prototype=20is=20not=20in=20the=20platform=20header=20files.=0A+=20=20=20= See=20= https://reverse.put.as/wp-content/uploads/2011/09/Apple-Sandbox-Guide-v1.0= .pdf=0A+=20=20=20and=20= https://chromium.googlesource.com/chromium/src/+/master/sandbox/mac/seatbe= lt_sandbox_design.md=20*/=0A+int=20sandbox_init_with_parameters(const=20= char=20*profile,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20uint64_t=20flags,=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20const=20char=20*const=20parameters[],=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20char=20**errorbuf);=0A+=0A+DEFUN=20("darwin-sandbox-init",=20= Fdarwin_sandbox_init,=20Sdarwin_sandbox_init,=0A+=20=20=20=20=20=20=201,=20= 1,=200,=0A+=20=20=20=20=20=20=20doc:=20/*=20Enter=20a=20sandbox=20whose=20= permitted=20access=20is=20curtailed=20by=20PROFILE.=0A+Already=20open=20= descriptors=20can=20be=20used=20freely.=0A+PROFILE=20is=20a=20string=20= in=20the=20macOS=20sandbox=20profile=20language,=0A+a=20set=20of=20rules=20= in=20a=20Lisp-like=20syntax.=0A+=0A+This=20is=20not=20a=20supported=20= interface=20and=20is=20for=20internal=20use=20only.=20*/)=0A+=20=20= (Lisp_Object=20profile)=0A+{=0A+=20=20CHECK_STRING=20(profile);=0A+=20=20= if=20(memchr=20(SSDATA=20(profile),=20'\0',=20SBYTES=20(profile)))=0A+=20= =20=20=20error=20("NUL=20in=20sandbox=20profile");=0A+=20=20char=20*err=20= =3D=20NULL;=0A+=20=20if=20(sandbox_init_with_parameters=20(SSDATA=20= (profile),=200,=20NULL,=20&err)=20!=3D=200)=0A+=20=20=20=20error=20= ("sandbox=20error:=20%s",=20err);=0A+=20=20return=20Qnil;=0A+}=0A+=0A= +#endif=09/*=20DARWIN_OS=20*/=0A+=0A=20void=0A=20syms_of_sysdep=20(void)=0A= =20{=0A=20=20=20defsubr=20(&Sget_internal_run_time);=0A+#ifdef=20= DARWIN_OS=0A+=20=20defsubr=20(&Sdarwin_sandbox_init);=0A+#endif=0A=20}=0A= diff=20--git=20a/test/lisp/darwin-fns-tests.el=20= b/test/lisp/darwin-fns-tests.el=0Anew=20file=20mode=20100644=0Aindex=20= 0000000000..1e426407a1=0A---=20/dev/null=0A+++=20= b/test/lisp/darwin-fns-tests.el=0A@@=20-0,0=20+1,90=20@@=0A+;;;=20= darwin-fns-tests.el=20---=20tests=20for=20darwin-fns.el=20=20-*-=20= lexical-binding:=20t=20-*-=0A+=0A+;;=20Copyright=20(C)=202021=20=20Free=20= Software=20Foundation,=20Inc.=0A+=0A+;;=20This=20file=20is=20part=20of=20= GNU=20Emacs.=0A+=0A+;;=20GNU=20Emacs=20is=20free=20software:=20you=20can=20= redistribute=20it=20and/or=20modify=0A+;;=20it=20under=20the=20terms=20= of=20the=20GNU=20General=20Public=20License=20as=20published=0A+;;=20by=20= the=20Free=20Software=20Foundation,=20either=20version=203=20of=20the=20= License,=0A+;;=20or=20(at=20your=20option)=20any=20later=20version.=0A+=0A= +;;=20GNU=20Emacs=20is=20distributed=20in=20the=20hope=20that=20it=20= will=20be=20useful,=20but=0A+;;=20WITHOUT=20ANY=20WARRANTY;=20without=20= even=20the=20implied=20warranty=20of=0A+;;=20MERCHANTABILITY=20or=20= FITNESS=20FOR=20A=20PARTICULAR=20PURPOSE.=20=20See=20the=20GNU=0A+;;=20= General=20Public=20License=20for=20more=20details.=0A+=0A+;;=20You=20= should=20have=20received=20a=20copy=20of=20the=20GNU=20General=20Public=20= License=0A+;;=20along=20with=20GNU=20Emacs.=20=20If=20not,=20see=20= <https://www.gnu.org/licenses/>.=0A+=0A+(require=20'ert)=0A+=0A+(defun=20= darwin-fns-tests--run-emacs=20(expr1=20expr2)=0A+=20=20"Run=20Emacs=20in=20= batch=20mode=20and=20evaluate=20EXPR1=20and=20EXPR2.=0A+Return=20= (EXIT-STATUS=20.=20OUTPUT),=20where=20OUTPUT=20is=20stderr=20and=20= stdout."=0A+=20=20(let=20((emacs=20(expand-file-name=20invocation-name=20= invocation-directory))=0A+=20=20=20=20=20=20=20=20(process-environment=20= nil))=0A+=20=20=20=20(with-temp-buffer=0A+=20=20=20=20=20=20(let=20((res=20= (call-process=20emacs=20nil=20t=20nil=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20"--quick"=20= "--batch"=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(format=20"--eval=3D%S"=20expr1)=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(format=20"--eval=3D%S"=20expr2))))=0A+=20=20=20=20=20=20=20=20= (cons=20res=20(buffer-string))))))=0A+=0A+(ert-deftest=20= darwin-fns-sandbox=20()=0A+=20=20(skip-unless=20(eq=20system-type=20= 'darwin))=0A+=20=20;;=20Test=20file=20reading=20and=20writing=20under=20= various=20sandboxing=20conditions.=0A+=20=20(let*=20((some-text=20= "abcdef")=0A+=20=20=20=20=20=20=20=20=20(new-text=20"ghijkl")=0A+=20=20=20= =20=20=20=20=20=20(test-file=20(file-truename=20(make-temp-file=20= "test")))=0A+=20=20=20=20=20=20=20=20=20(file-dir=20(file-name-directory=20= test-file)))=0A+=20=20=20=20(unwind-protect=0A+=20=20=20=20=20=20=20=20= (dolist=20(mode=20'(read=20write))=0A+=20=20=20=20=20=20=20=20=20=20= (ert-info=20((symbol-name=20mode)=20:prefix=20"mode:=20")=0A+=20=20=20=20= =20=20=20=20=20=20=20=20(dolist=20(sandbox=20'(allow-all=20deny-all=20= allow-read))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20(ert-info=20= ((symbol-name=20sandbox)=20:prefix=20"sandbox:=20")=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20;;=20Prepare=20initial=20file=20contents.=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(with-temp-buffer=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(insert=20some-text)=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(write-file=20= test-file))=0A+=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let*=20= ((sandbox-form=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(pcase-exhaustive=20sandbox=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20('allow-all=20nil)=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20('deny-all=20'(darwin-sandbox-enter=20nil))=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20('allow-read=20= `(darwin-sandbox-enter=20'(,file-dir)))))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(action-form=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(pcase-exhaustive=20= mode=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20('read=20`(progn=20(find-file-literally=20,test-file)=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(message=20"OK:=20%s"=20= (buffer-string))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20('write=20`(with-temp-buffer=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(insert=20,new-text)=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20(write-file=20,test-file)))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(allowed=20(or=20(eq=20sandbox=20= 'allow-all)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(and=20(eq=20sandbox=20= 'allow-read)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(eq=20= mode=20'read))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(res-out=20(darwin-fns-tests--run-emacs=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20sandbox-form=20action-form))=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20(exit-status=20(car=20res-out))=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (output=20(cdr=20res-out))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(file-contents=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(with-temp-buffer=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (insert-file-contents-literally=20test-file)=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(buffer-string))))=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20allowed=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(should=20= (equal=20exit-status=200))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(should-not=20(equal=20exit-status=200)))=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(when=20(eq=20mode=20'read)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20allowed=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (should=20(equal=20output=20(format=20"OK:=20%s\n"=20some-text)))=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(should-not=20= (string-search=20some-text=20output))))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(should=20(equal=20file-contents=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(if=20(and=20(eq=20mode=20'write)=20allowed)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20new-text=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= some-text))))))))=0A+=0A+=20=20=20=20=20=20;;=20Clean=20up.=0A+=20=20=20=20= =20=20(ignore-errors=20(delete-file=20test-file)))))=0A+=0A+=0A+(provide=20= 'darwin-fns-tests)=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=0A= --Apple-Mail=_59FECC85-2A93-4A38-B1A5-7709DA915415--
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 18 Apr 2021 14:25:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 18 10:25:57 2021 Received: from localhost ([127.0.0.1]:47374 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lY8N2-00020m-RT for submit <at> debbugs.gnu.org; Sun, 18 Apr 2021 10:25:57 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:34406) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1lY8N1-00020Y-Mk for 45198 <at> debbugs.gnu.org; Sun, 18 Apr 2021 10:25:56 -0400 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 22BBA80BA3; Sun, 18 Apr 2021 10:25:50 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id CAC5C8075E; Sun, 18 Apr 2021 10:25:48 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1618755948; bh=FawMmGa/6Ask3xFRX3NMZigvuXbzBHEflSCpWuBNHIM=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=fhe4hgitkXBWy8so9kkjXMouUMdjbj8TJIMloGmlY4upORqS1TKCihbXcMTrB8ciK ELeyC1f1pJeDuY+aTtMJ1g1Kyta7st9y1COFCscR5e6vL+k/o1sAkSAAm9F5MGSvTO bR+xKiO9rVi+GIA7tc4UQ/KukLou0bQyLXQKMrSChhg3ld9+qHtNVyqfxqPgidyLsE xU/ftdTpjI0XVKYHhmW0ABoREkzH8ZLLYKZ39Ji99vJHEGDebt8pFtNIuV7tuvuc3Y 2sWorKhklqdNXfv5T1AcNIT4EouHMVKsTC2Aa1WLTV+8GrPyp4JRIAsWnQ67RbfnP3 L4rznGBv9lXYA== Received: from alfajor (104-222-126-84.cpe.teksavvy.com [104.222.126.84]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 7A7D712022C; Sun, 18 Apr 2021 10:25:48 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwvlf9f3c7i.fsf-monnier+emacs@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <jwva6pwalxc.fsf-monnier+emacs@HIDDEN> <83o8ecvnok.fsf@HIDDEN> <jwv5z0k7qeg.fsf-monnier+emacs@HIDDEN> <83lf9gvktv.fsf@HIDDEN> <jwv7dl069cy.fsf-monnier+emacs@HIDDEN> <83im4kvi4e.fsf@HIDDEN> <jwv1rb864yg.fsf-monnier+emacs@HIDDEN> <83blacun30.fsf@HIDDEN> Date: Sun, 18 Apr 2021 10:25:47 -0400 In-Reply-To: <83blacun30.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 18 Apr 2021 09:24:35 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.053 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, p.stephani2@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> The whole point of the sandboxing exercise is so as to be able to have >> flymake-mode in the hook without exposing yourself to >> these vulnerabilities. > > So we are going to introduce all this non-trivial machinery into Emacs > just to solve the Flymake use case? Is that reasonable from the > project management POV, in your eyes? To the extent that this machinery will only be used by those rare places that need it (e.g. flymake), yes, as long as the low-level interface (e.g. the code that added the support for the `--seccomp` argument) is simple enough. BTW, in the context of GNU/Linux, an alternative to `--seccomp` is to require the `bwrap` tool (that's what I use in the `elpa-admin.el` scripts to run makefile rules from ELPA packages). Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 18 Apr 2021 09:23:49 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 18 05:23:49 2021 Received: from localhost ([127.0.0.1]:45304 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lY3ef-0002Gy-Dd for submit <at> debbugs.gnu.org; Sun, 18 Apr 2021 05:23:49 -0400 Received: from eggs.gnu.org ([209.51.188.92]:52340) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1lY3ee-0002Gm-DG for 45198 <at> debbugs.gnu.org; Sun, 18 Apr 2021 05:23:48 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:48517) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1lY3eY-00051t-2T; Sun, 18 Apr 2021 05:23:42 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2379 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1lY3eV-0001GV-Ec; Sun, 18 Apr 2021 05:23:40 -0400 Date: Sun, 18 Apr 2021 12:23:20 +0300 Message-Id: <83tuo4t08n.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> In-Reply-To: <CAArVCkThkE1iZwxOL78pJAzX2Vr8KxS9jn5dq1h_1DfS9+4LMQ@HIDDEN> (message from Philipp Stephani on Sun, 18 Apr 2021 11:11:28 +0200) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <83tuo4vqet.fsf@HIDDEN> <CAArVCkQq5Zrdk31wdoDmTSqbEc+aPHdLy8w9ZuZmzQ2t83NSjw@HIDDEN> <83r1j8vpku.fsf@HIDDEN> <CAArVCkT-xh4oJ5a1Bgctn62DMNK5_xw5+mg1jRZchV1Pcrq0bQ@HIDDEN> <83fszovhox.fsf@HIDDEN> <8491CEA9-E230-48E4-9AB3-71DF0B4D8A2B@HIDDEN> <83czusun95.fsf@HIDDEN> <CAArVCkThkE1iZwxOL78pJAzX2Vr8KxS9jn5dq1h_1DfS9+4LMQ@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefankangas@HIDDEN, joaotavora@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > From: Philipp Stephani <p.stephani2@HIDDEN> > Date: Sun, 18 Apr 2021 11:11:28 +0200 > Cc: Mattias Engdegård <mattiase@HIDDEN>, > João Távora <joaotavora@HIDDEN>, > 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, > Stefan Monnier <monnier@HIDDEN>, Alan Third <alan@HIDDEN> > > > > > And what about users who make local changes > > > > in their Emacs? > > > > > > They can provide their own Seccomp policies or modify the ones included in Emacs. > > > > What does providing a policy entail? can you describe the procedure of > > tailoring a policy to changes in the Emacs code? > > 1. Run the Emacs sandbox with the code you want to run. > 2. Emacs will crash with SIGSYS if it hits a forbidden/unknown > syscall. Ensure that this generates a coredump. > 3. Check the backtrace for the coredump (e.g. coredumpctl debug) > and/or the Seccomp audit logs (ausearch) for the syscall that > triggered the signal. > 4. Add a rule for the syscall and its arguments to the BPF generation > program, e.g. lib-src/seccom-filter.c. > 5. Regenerate the BPF rule file. Sounds complicated, and requires non-trivial low-level knowledge and tools.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 18 Apr 2021 09:11:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 18 05:11:48 2021 Received: from localhost ([127.0.0.1]:45298 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lY3T2-0001zK-8H for submit <at> debbugs.gnu.org; Sun, 18 Apr 2021 05:11:48 -0400 Received: from mail-oi1-f174.google.com ([209.85.167.174]:36558) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lY3T0-0001z6-1I for 45198 <at> debbugs.gnu.org; Sun, 18 Apr 2021 05:11:46 -0400 Received: by mail-oi1-f174.google.com with SMTP id v6so4742036oiv.3 for <45198 <at> debbugs.gnu.org>; Sun, 18 Apr 2021 02:11:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=ynZNtmo/+mbeYd6ZY4OnnKdOZkr2/8Ltl47nkRjw7jk=; b=VpipkC/+MFbYFrnn8f6KH9lRrLCAEjN9swrXmRNOmYoFuTIwaacq4jfy2L5Efwjt1V PuBF67gajI7rJMH/QhopQyJyF47RPW+tkr21yXm9D5UwERjJR+6mlvIXjoDrEeoHsxzV 7IvkhqWZAaqF/yHJYJWP2xnCedMwi1hMRPOUEUGVBzY3XHBJd4we8ghSqZFSJJXKJIWX yDvSWdufeRZ8NAIvrsfvTaVOBqPiNkf5nPyeHUdYEqsmait2XhwpqXkhRAAFjXdnzLwt LpgfcWO+esV3/llRJc26RMda3ZPmw/t/OTQWzTVg7K9aGq1GztwYUTYZoFXxycRCJtaS d9Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=ynZNtmo/+mbeYd6ZY4OnnKdOZkr2/8Ltl47nkRjw7jk=; b=L/CujC9+BCeFQQZNXiM7/rM0rfNLXcIUwFgr0BLWbQrGFbOIesHEB7VYx2zYJ+LBv2 fdOkZj3XPPaxNVeGTx31nFPoL6e9IJ+yyQQA6WzWPs5IAop0lXr1SaB0Kfu7Y++3UZe7 cgTT7HmcU7AyoVursuAVVZRFg1+B2+AGQiBVXC9GO1h+SqY31pZmPXP7AFk/L/idCeQa eAjy/Zdl196ms69Jx8H8JFsvrNccTOiLdV3pctDe5/6EOGZq1WoKuPaXftnXkOJQNtEk 7bBfZf/IaNXc3jG8rrRXN91ngQ8OvH1N6ZJd1MMeD/fz8yoTOf7kQSUHI9c9l+9iwFxr uWrw== X-Gm-Message-State: AOAM531qoFK8dLVgtWfihhpGNtiougfy9zyibgPotMDOnStLfmSRtKN/ xGjMKBtO3EAYPAKG8Y2RjOmFI/QxT8ax9MCBKDY= X-Google-Smtp-Source: ABdhPJz5x2blbiceWpvrHxkY773iyVVKLk88uxgd+6seLml/ubOyE7Z0PphUYxKq4nMhAQ9uVyC7ilC0QbDLlqMdiLI= X-Received: by 2002:aca:1814:: with SMTP id h20mr12139915oih.150.1618737100372; Sun, 18 Apr 2021 02:11:40 -0700 (PDT) MIME-Version: 1.0 References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <83tuo4vqet.fsf@HIDDEN> <CAArVCkQq5Zrdk31wdoDmTSqbEc+aPHdLy8w9ZuZmzQ2t83NSjw@HIDDEN> <83r1j8vpku.fsf@HIDDEN> <CAArVCkT-xh4oJ5a1Bgctn62DMNK5_xw5+mg1jRZchV1Pcrq0bQ@HIDDEN> <83fszovhox.fsf@HIDDEN> <8491CEA9-E230-48E4-9AB3-71DF0B4D8A2B@HIDDEN> <83czusun95.fsf@HIDDEN> In-Reply-To: <83czusun95.fsf@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sun, 18 Apr 2021 11:11:28 +0200 Message-ID: <CAArVCkThkE1iZwxOL78pJAzX2Vr8KxS9jn5dq1h_1DfS9+4LMQ@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Eli Zaretskii <eliz@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Am So., 18. Apr. 2021 um 08:21 Uhr schrieb Eli Zaretskii : > > > From: Philipp > > Date: Sat, 17 Apr 2021 21:52:59 +0200 > > Cc: Mattias Engdegård , > > João Távora , > > 45198 <at> debbugs.gnu.org [...] Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (p.stephani2[at]gmail.com) 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (p.stephani2[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.167.174 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.167.174 listed in wl.mailspike.net] 1.0 FREEMAIL_REPLY From and body contain different freemails X-Debbugs-Envelope-To: 45198 Cc: Alan Third <alan@HIDDEN>, =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am So., 18. Apr. 2021 um 08:21 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>: > > > From: Philipp <p.stephani2@HIDDEN> > > Date: Sat, 17 Apr 2021 21:52:59 +0200 > > Cc: Mattias Engdeg=C3=A5rd <mattiase@HIDDEN>, > > Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN>, > > 45198 <at> debbugs.gnu.org, > > stefankangas@HIDDEN, > > monnier@HIDDEN, > > alan@HIDDEN > > > > > So you are going to suggest that we rely on some auditing of the > > > syscalls Emacs uses now to decide which ones to filter and which not? > > > > I don't mean that we should wade through all potential syscalls that Em= acs could make. Typically you can come up with such a Seccomp policy itera= tively: run Seccomp in advisory mode (i.e. only log syscalls), then allow t= he syscalls that are both necessary and harmless in the policy. > > Emacs can be invoked to do many different things, and will > correspondingly present very different profiles of syscalls. Is the > procedure you envision practical, let alone seamless, given that it > will have to become part of the maintenance and the release process? Yes. There aren't that many syscalls to begin with, and Emacs uses only a small subset of them. New Emacs or libc versions occasionally introduce new syscalls, but finding and allowing them tends to be not that big of a deal. > > > And what about users who make local changes > > > in their Emacs? > > > > They can provide their own Seccomp policies or modify the ones included= in Emacs. > > What does providing a policy entail? can you describe the procedure of > tailoring a policy to changes in the Emacs code? 1. Run the Emacs sandbox with the code you want to run. 2. Emacs will crash with SIGSYS if it hits a forbidden/unknown syscall. Ensure that this generates a coredump. 3. Check the backtrace for the coredump (e.g. coredumpctl debug) and/or the Seccomp audit logs (ausearch) for the syscall that triggered the signal. 4. Add a rule for the syscall and its arguments to the BPF generation program, e.g. lib-src/seccom-filter.c. 5. Regenerate the BPF rule file.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 18 Apr 2021 06:25:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 18 02:25:13 2021 Received: from localhost ([127.0.0.1]:45130 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lY0rk-0004F2-M2 for submit <at> debbugs.gnu.org; Sun, 18 Apr 2021 02:25:12 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34446) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1lY0rf-0004E1-Dx for 45198 <at> debbugs.gnu.org; Sun, 18 Apr 2021 02:25:06 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47223) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1lY0rX-00084g-Tu; Sun, 18 Apr 2021 02:24:56 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3319 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1lY0rX-0003vz-B5; Sun, 18 Apr 2021 02:24:55 -0400 Date: Sun, 18 Apr 2021 09:24:35 +0300 Message-Id: <83blacun30.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> In-Reply-To: <jwv1rb864yg.fsf-monnier+emacs@HIDDEN> (message from Stefan Monnier on Sat, 17 Apr 2021 16:26:25 -0400) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <jwva6pwalxc.fsf-monnier+emacs@HIDDEN> <83o8ecvnok.fsf@HIDDEN> <jwv5z0k7qeg.fsf-monnier+emacs@HIDDEN> <83lf9gvktv.fsf@HIDDEN> <jwv7dl069cy.fsf-monnier+emacs@HIDDEN> <83im4kvi4e.fsf@HIDDEN> <jwv1rb864yg.fsf-monnier+emacs@HIDDEN> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, p.stephani2@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > From: Stefan Monnier <monnier@HIDDEN> > Cc: mattiase@HIDDEN, joaotavora@HIDDEN, p.stephani2@HIDDEN, > stefan@HIDDEN, 45198 <at> debbugs.gnu.org, alan@HIDDEN > Date: Sat, 17 Apr 2021 16:26:25 -0400 > > > If you are implying that one does something conscious and deliberate > > before byte-compiling a file, > > Have you ever byte-compiled a random ELisp file sent to you from some > unknown email address without looking at it first? No, but I also don't use Flymake and never install packages via package.el. IOW, my own workflows are not very relevant to the issues at hand, and neither are yours. What matters is what others do. > The whole point of the sandboxing exercise is so as to be able to have > flymake-mode in the hook without exposing yourself to > these vulnerabilities. So we are going to introduce all this non-trivial machinery into Emacs just to solve the Flymake use case? Is that reasonable from the project management POV, in your eyes?
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 18 Apr 2021 06:21:25 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 18 02:21:25 2021 Received: from localhost ([127.0.0.1]:45121 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lY0o8-00048a-PD for submit <at> debbugs.gnu.org; Sun, 18 Apr 2021 02:21:25 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34096) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1lY0o6-00048J-Rz for 45198 <at> debbugs.gnu.org; Sun, 18 Apr 2021 02:21:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47211) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1lY0nz-0006EA-Hd; Sun, 18 Apr 2021 02:21:15 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3088 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1lY0nz-0003jO-0J; Sun, 18 Apr 2021 02:21:15 -0400 Date: Sun, 18 Apr 2021 09:20:54 +0300 Message-Id: <83czusun95.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Philipp <p.stephani2@HIDDEN> In-Reply-To: <8491CEA9-E230-48E4-9AB3-71DF0B4D8A2B@HIDDEN> (message from Philipp on Sat, 17 Apr 2021 21:52:59 +0200) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <83tuo4vqet.fsf@HIDDEN> <CAArVCkQq5Zrdk31wdoDmTSqbEc+aPHdLy8w9ZuZmzQ2t83NSjw@HIDDEN> <83r1j8vpku.fsf@HIDDEN> <CAArVCkT-xh4oJ5a1Bgctn62DMNK5_xw5+mg1jRZchV1Pcrq0bQ@HIDDEN> <83fszovhox.fsf@HIDDEN> <8491CEA9-E230-48E4-9AB3-71DF0B4D8A2B@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefankangas@HIDDEN, joaotavora@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > From: Philipp <p.stephani2@HIDDEN> > Date: Sat, 17 Apr 2021 21:52:59 +0200 > Cc: Mattias Engdegård <mattiase@HIDDEN>, > João Távora <joaotavora@HIDDEN>, > 45198 <at> debbugs.gnu.org, > stefankangas@HIDDEN, > monnier@HIDDEN, > alan@HIDDEN > > > So you are going to suggest that we rely on some auditing of the > > syscalls Emacs uses now to decide which ones to filter and which not? > > I don't mean that we should wade through all potential syscalls that Emacs could make. Typically you can come up with such a Seccomp policy iteratively: run Seccomp in advisory mode (i.e. only log syscalls), then allow the syscalls that are both necessary and harmless in the policy. Emacs can be invoked to do many different things, and will correspondingly present very different profiles of syscalls. Is the procedure you envision practical, let alone seamless, given that it will have to become part of the maintenance and the release process? > > If so, how will this work in the future, when Emacs might decide to > > issue some additional syscalls? who and how will remember to update > > the filter definitions? > > There are unit tests that ensure that the behavior we expect works. Unit tests are a far cry from what Emacs does in real-life usage, so I very much doubt that unit tests will suffice in this case. > > And what about users who make local changes > > in their Emacs? > > They can provide their own Seccomp policies or modify the ones included in Emacs. What does providing a policy entail? can you describe the procedure of tailoring a policy to changes in the Emacs code? > >> At least initially we should only care about batch mode, though - > >> nothing prevents interactive mode in a sandbox in principle, but batch > >> mode is much easier to deal with, and suffices for the Flymake use > >> case. > > > > I understand why batch mode might be easier to deal with, but I'm not > > sure we should care more about it just because it's easier. > > We care about it in the scope of the feature being discussed (Flymake) because Flymake runs Emacs in batch mode anyway. So we will make running Flymake safe, but what about all the other use cases where similar dangers exist? Flymake is just a tiny fraction of what Emacs does, so it sounds strange, to say the least, to work on solution for that use case alone, when it is clear from the get-go that many other use cases aren't covered.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 20:26:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 16:26:35 2021 Received: from localhost ([127.0.0.1]:44756 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXrWV-0002EY-G3 for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 16:26:35 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:26286) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1lXrWT-0002EI-KX for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 16:26:33 -0400 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 284EB100222; Sat, 17 Apr 2021 16:26:28 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 91F181000C9; Sat, 17 Apr 2021 16:26:26 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1618691186; bh=E+dHsDtUmvYPcuMBofbdggfjKYzvw7+GEk/UjyIZDXU=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=U/7wth+N1XcBvnRaMqqSOuS1iEDdlrdPmr6sZT8k7b+Xs71r8f53/CnD6jD46kqLk ZK4z5yDdKbR8BEa3DRnQi3tmk0oxbTj0p2LQ2ByxMOYBcUs74Yo25hDVQfcwg7uheX ceOJ+pelv6YYf3X7nqctwZEI762bxRzvjgNZYBcyq2ZWq5nt+fUpqrur2KVZmNo0dY xOzVWNPVY4uWhdTPDsQoLMHoZGKRGYVdxYfq6skcN6VZ19Wbag7XauemKKfPUk8qU1 D6+W4t3yiMFolxjHWtNMaQ0wZAhQ/FqgQLRoZfOR6IF/Uw8e7lgJGlSW9tzTWb6pbj pyAID25OXALZQ== Received: from alfajor (104-222-126-84.cpe.teksavvy.com [104.222.126.84]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 403691202AD; Sat, 17 Apr 2021 16:26:26 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwv1rb864yg.fsf-monnier+emacs@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <jwva6pwalxc.fsf-monnier+emacs@HIDDEN> <83o8ecvnok.fsf@HIDDEN> <jwv5z0k7qeg.fsf-monnier+emacs@HIDDEN> <83lf9gvktv.fsf@HIDDEN> <jwv7dl069cy.fsf-monnier+emacs@HIDDEN> <83im4kvi4e.fsf@HIDDEN> Date: Sat, 17 Apr 2021 16:26:25 -0400 In-Reply-To: <83im4kvi4e.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 17 Apr 2021 22:14:09 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.021 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, p.stephani2@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> The normal way to enable flymake is something like >> >> (add-hook 'emacs-lisp-mode #'flymake-mode) >> >> so the file gets compiled just because you're looking at it. >> That's quite different from an explicit request from the user to compile >> a file. > > It is? Sorry, I don't see the difference, not a significant one. It make `C-x C-f` a tool to run arbitrary code (since the file may end with something apparently harmless like `.txt` but may actually use `emacs-lisp-mode`). > If you are implying that one does something conscious and deliberate > before byte-compiling a file, Have you ever byte-compiled a random ELisp file sent to you from some unknown email address without looking at it first? Have you ever viewed with Emacs a file sent from some unknown email address? For me the answers are "no, never" and "yes, many times". Enabling flymake mode as above currently blurs the difference between those two cases in terms of risks. > then one could also remove Flymake from the hook while at that. The whole point of the sandboxing exercise is so as to be able to have flymake-mode in the hook without exposing yourself to these vulnerabilities. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 19:58:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 15:58:13 2021 Received: from localhost ([127.0.0.1]:44712 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXr53-0001Wt-AF for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:58:13 -0400 Received: from outbound.soverin.net ([116.202.65.218]:54177) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <alan@HIDDEN>) id 1lXr51-0001Wd-8b for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:58:12 -0400 Received: from smtp.soverin.net (unknown [10.10.3.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 6076F601B8; Sat, 17 Apr 2021 19:58:03 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [159.69.232.142]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1618689481; bh=0mIiFn2oP9ISihYPjw8gvV3w48yPKz6mYVpyGZ6eVE8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=RvXLmMEVWXgfFQK9R530MXHg3LNDTYVW4k8mmNB7V6cMfB5ppzQQMdMXgad08xs75 dVZX3NiIImDcg8ik0V7GjlAlue27N/2zbWsnHMY3DyEg55VXvs7dx5+xSi5VUpSnH+ d1UEzayHlDUX9pZKLlqoq7PSPmEhjuhlflmIYYaHlkD+omBRFgEj9Paq7NIiMFLmes 5//AfFMO9ZfvVz20i4gerge5UNwD65Iymo2UnlqZGkvz7KM23PsSRMe4IcrLAmRAOs pu0XYX16gWjRiTjh3lplaLBDAvz8IAXxqktRNl375IPzIou5zCl0lAlR5sp85zXEV2 UJwM5Mm+ezzsQ== Received: by breton.holly.idiocy.org (Postfix, from userid 501) id 72474202BD1872; Sat, 17 Apr 2021 20:57:57 +0100 (BST) Date: Sat, 17 Apr 2021 20:57:57 +0100 From: Alan Third <alan@HIDDEN> To: Philipp <p.stephani2@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <YHs9xSgEtFgwJ1LR@HIDDEN> Mail-Followup-To: Alan Third <alan@HIDDEN>, Philipp <p.stephani2@HIDDEN>, Mattias =?iso-8859-1?Q?Engdeg=E5rd?= <mattiase@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, =?iso-8859-1?Q?Jo=E3o_T=E1vora?= <joaotavora@HIDDEN>, 45198 <at> debbugs.gnu.org, stefan@HIDDEN References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <AAAE6F07-7424-4632-B2DB-528649DB412A@HIDDEN> <jwvim4k6ade.fsf-monnier+emacs@HIDDEN> <78F41D0B-D2F6-444C-9B5C-9C50CFF2CFBD@HIDDEN> <E967667D-698C-47FE-9E95-429C30C83907@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <E967667D-698C-47FE-9E95-429C30C83907@HIDDEN> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: Mattias =?iso-8859-1?Q?Engdeg=E5rd?= <mattiase@HIDDEN>, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, Stefan Monnier <monnier@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, =?iso-8859-1?Q?Jo=E3o_T=E1vora?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) On Sat, Apr 17, 2021 at 09:42:31PM +0200, Philipp wrote: > > diff --git a/lisp/subr.el b/lisp/subr.el > > index c2be26a15f..196512c0c6 100644 > > --- a/lisp/subr.el > > +++ b/lisp/subr.el > > Should this maybe be in a platform-specific file such as ns-fns.el (like dos-fns.el, w32-fns.el)? > > @@ -6262,4 +6262,22 @@ internal--format-docstring-line > > This is intended for internal use only." > > (internal--fill-string-single-line (apply #'format string objects))) > > > > +(when (eq system-type 'darwin) > > + (defun darwin-sandbox-enter (dirs) > > I don't think we use the "darwin-" prefix anywhere else in Emacs. > Maybe use a "ns-" prefix. Also I think such internal functions > commonly have an "internal" piece somewhere in their name, e.g. > "ns-enter-sandbox-internal". I'm coming to this late, so I may be misunderstanding what this is, but as far as I can tell it has nothing to do with Cocoa or GNUstep, so I would suggest not using the ns- prefix. If you're running, say, terminal Emacs on a Darwin system, ns-fns.el is not called. NS =/= Darwin. -- Alan Third
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 19:53:09 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 15:53:09 2021 Received: from localhost ([127.0.0.1]:44704 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXr09-0001Pb-Aw for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:53:09 -0400 Received: from mail-ed1-f50.google.com ([209.85.208.50]:39731) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lXr07-0001PB-4c for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:53:07 -0400 Received: by mail-ed1-f50.google.com with SMTP id g17so35454082edm.6 for <45198 <at> debbugs.gnu.org>; Sat, 17 Apr 2021 12:53:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=ehCvAHzswN4dSh+lj3ESMjjurqy/kyAOScBpDQB2UIs=; b=mCF5EoLL20Y7HT/NIHGLdwGJmWmeugWc63fMIIqWsf3kJ3h22TMVDEOabE76Dk2uBp X0t1EhYtK7siPULAS91K/IoOnv9ewgF4rWwgALN1cCURBF9YGFJa/8bg5e5a6PoADQ04 ccLw958NzfsoWWhSaccztkWYZZTun9rS4pklFr+pTbFEhE8MoNE9Fpju8VT4vKGtYIQK Fu1gOUp6ImRPP6D1341VMCXTQfB2GTWnnkWvjT+f0ueNVDnWHo8C5dECZXkXqD9ixqNk h+qJb2/VtYNXIUBOE0pKLXmhgv1dp0EPPUXonwTinVPJBpQK9CY5wOueQFLdXAoDxGZ9 GU3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=ehCvAHzswN4dSh+lj3ESMjjurqy/kyAOScBpDQB2UIs=; b=ct2ztXBshI87yhmcBu5n1F1+vjc1ChYeJm741uuDJym/Ds6V0aIHfosEw2i/fqZm+z LOcnhZBNEJPK8gCNClvuGzZ78xrYeQ4vEKQeIuHU9mBjm5Fz46fTCTBbTrLrAAhnyASS r9vvK3HhGNOJLFYPjKX8F/oOscePbhVS3RhR82osCbkdCG55H0VhH27Clsuwv69lddC+ 1ey54ImZKopDeSCWBkwZS5tz7C9/Qwjc7lzep9hSKHH+4onj/8c9xjxfAM72KLaASjrv 0u1+iDbWtOUHDGoRr6avWX5L2/MS+zrFV9WQyty8gknUqwvWhRdDhQl4OkTZpra4elCG R4ww== X-Gm-Message-State: AOAM532tBf3LS3buEbiJhKoyaR0L7ynbdYyYsv32zF2Dx8GAeEQVbYXe ZTP2uGGwQ6xoZ7mdqUJ2se0= X-Google-Smtp-Source: ABdhPJweuaiuwMxDS5YAkJqVVzQ5qqhWR6hrbxhku98V5b22Fjd7XY4pc0CdziCVk2EUT5CAF8RBaQ== X-Received: by 2002:aa7:c850:: with SMTP id g16mr16813797edt.324.1618689181312; Sat, 17 Apr 2021 12:53:01 -0700 (PDT) Received: from philipps-macbook-pro.fritz.box (p57aafcaa.dip0.t-ipconnect.de. [87.170.252.170]) by smtp.gmail.com with ESMTPSA id nd36sm6739304ejc.21.2021.04.17.12.52.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Apr 2021 12:53:00 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: Philipp <p.stephani2@HIDDEN> In-Reply-To: <83fszovhox.fsf@HIDDEN> Date: Sat, 17 Apr 2021 21:52:59 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <8491CEA9-E230-48E4-9AB3-71DF0B4D8A2B@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <83tuo4vqet.fsf@HIDDEN> <CAArVCkQq5Zrdk31wdoDmTSqbEc+aPHdLy8w9ZuZmzQ2t83NSjw@HIDDEN> <83r1j8vpku.fsf@HIDDEN> <CAArVCkT-xh4oJ5a1Bgctn62DMNK5_xw5+mg1jRZchV1Pcrq0bQ@HIDDEN> <83fszovhox.fsf@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> X-Mailer: Apple Mail (2.3654.60.0.2.21) X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>, 45198 <at> debbugs.gnu.org, stefankangas@HIDDEN, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) > Am 17.04.2021 um 21:23 schrieb Eli Zaretskii <eliz@HIDDEN>: >=20 >> From: Philipp Stephani <p.stephani2@HIDDEN> >> Date: Sat, 17 Apr 2021 21:14:02 +0200 >> Cc: Mattias Engdeg=C3=A5rd <mattiase@HIDDEN>,=20 >> Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN>,=20 >> 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>,=20= >> Stefan Monnier <monnier@HIDDEN>, Alan Third = <alan@HIDDEN> >>=20 >>> "Performing computations" in Emacs corresponds to invoking gobs of >>> system interfaces, and if we are going to filter most of them, I = fear >>> we will get a dysfunctional Emacs. E.g., cursor blinking requires >>> accessing the system time, displaying a busy cursor requires = interval >>> timers, profiling requires signals, and you cannot do anything in >>> Emacs without being able to allocate memory. If we leave Emacs only >>> with capabilities to read and write to a couple of descriptors, how >>> will the result be useful? >>=20 >> We would definitely allow more stuff (e.g. some other syscalls are >> required for Emacs to even start up). For example, Emacs needs to >> allocate memory and thus needs mmap/sbrk. Timing functions are not >> security-sensitive (timing attacks exist, but should be prevented in >> this case by blocking any relevant use of the data such obtained), = and >> signals only affect the sandboxed Emacs process. The two big things = we >> need to prevent is writing arbitrary files and creating sockets. >=20 > So you are going to suggest that we rely on some auditing of the > syscalls Emacs uses now to decide which ones to filter and which not? I don't mean that we should wade through all potential syscalls that = Emacs could make. Typically you can come up with such a Seccomp policy = iteratively: run Seccomp in advisory mode (i.e. only log syscalls), then = allow the syscalls that are both necessary and harmless in the policy. > If so, how will this work in the future, when Emacs might decide to > issue some additional syscalls? who and how will remember to update > the filter definitions? There are unit tests that ensure that the behavior we expect works. For = example, an existing unit test verifies that the sandboxed Emacs process = can write to standard output (and it has already failed a few times on = various systems, which is expected and is how we can find new syscalls = to add). So we only need to remember to run the unit tests (and have = good test coverage). > And what about users who make local changes > in their Emacs? They can provide their own Seccomp policies or modify the ones included = in Emacs. >=20 >> At least initially we should only care about batch mode, though - >> nothing prevents interactive mode in a sandbox in principle, but = batch >> mode is much easier to deal with, and suffices for the Flymake use >> case. >=20 > I understand why batch mode might be easier to deal with, but I'm not > sure we should care more about it just because it's easier. We care about it in the scope of the feature being discussed (Flymake) = because Flymake runs Emacs in batch mode anyway.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 19:42:46 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 15:42:46 2021 Received: from localhost ([127.0.0.1]:44687 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXqq1-00018z-Pn for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:42:46 -0400 Received: from mail-ed1-f47.google.com ([209.85.208.47]:33567) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lXqpz-00018m-I3 for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:42:40 -0400 Received: by mail-ed1-f47.google.com with SMTP id w18so36215541edc.0 for <45198 <at> debbugs.gnu.org>; Sat, 17 Apr 2021 12:42:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=SUXfrS1TSswhuexYFf3ZyMUDHa1TSug4DSrNBXQ4asw=; b=gWb3r+q6hyuyq3dxa2KxDAui+zdWVaCDe+E+Bw4+BJul8KTJzQ26R8JTB7OfgXegLT W8KYtSe4YegFu5DBTqEBlDrWE7hRydxtK1gswqzjmSZX7NR2ivpA8cBXn9DTdLvpCQm1 pPlesHFUaFkmJPcDRNiE7EAXbHpf+k6vg5C6lehwxcz9r9xmzcG4szqYM1Am8iY/OPqc JynJHOf82VvPMwMjWlhzThsCgRzS0/TxLB5FeZDJ98FR/WKIn16R9HxA76Yv0YPkCRUw hjG8cZbsOm6zlvkt9TOTy6jOBpuuFo3u5+Z8M6Lx+8LNTbp4wg0GQS3CZRVaaU7wAYqB vrRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=SUXfrS1TSswhuexYFf3ZyMUDHa1TSug4DSrNBXQ4asw=; b=AXCWHnza3ARZ3PQVBw0CSC5VMuM7b4wykS8o5ZQ6nNJoBpGcQifahZklIjqUjvg+j8 nGYHiwA6u/mpfkRPu8AOJI/wCcT5MCvFJoeID/W2ijSOiyS7XH9X0HcQsej6OtYRtIi9 lih5PFARuoL0kmU5JzZnEx/ENTMRY3SPuc9J1mgslt1Fw+BWGSUK+5SzND0joHqxuaLl +h2+9gfOHq/UroNcbeO6SXoXBx6P+aGB7Iv6WFEa5tKRoaNitvuu+zCH+HlN7M2tQ8d1 aBgjJ4u53ixDCog1rvmSTaEeU0UT3DCi1usZjQ8ragIBk7tpafonkBl1saWgIu95u7M4 Aeww== X-Gm-Message-State: AOAM5304pXADQJvGhM8nt3OPMeKpKCyobRNdNCS+8MZWlbpnY9ejkgp2 rxtMSTiPoHkjSWunE52jmfk= X-Google-Smtp-Source: ABdhPJyEgAzczoacppgQR0YizxkGm4ZZr0jjAFIIk+eMEX0HkUjJ3BxxYRP25xC8ajpyEtgzGfBLxQ== X-Received: by 2002:a05:6402:4245:: with SMTP id g5mr17098282edb.306.1618688553556; Sat, 17 Apr 2021 12:42:33 -0700 (PDT) Received: from philipps-macbook-pro.fritz.box (p57aafcaa.dip0.t-ipconnect.de. [87.170.252.170]) by smtp.gmail.com with ESMTPSA id d5sm3969607edt.49.2021.04.17.12.42.31 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Apr 2021 12:42:32 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: Philipp <p.stephani2@HIDDEN> In-Reply-To: <78F41D0B-D2F6-444C-9B5C-9C50CFF2CFBD@HIDDEN> Date: Sat, 17 Apr 2021 21:42:31 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <E967667D-698C-47FE-9E95-429C30C83907@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <AAAE6F07-7424-4632-B2DB-528649DB412A@HIDDEN> <jwvim4k6ade.fsf-monnier+emacs@HIDDEN> <78F41D0B-D2F6-444C-9B5C-9C50CFF2CFBD@HIDDEN> To: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> X-Mailer: Apple Mail (2.3654.60.0.2.21) X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, Stefan Monnier <monnier@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) > Am 17.04.2021 um 20:59 schrieb Mattias Engdeg=C3=A5rd = <mattiase@HIDDEN>: >=20 > 17 apr. 2021 kl. 20.21 skrev Stefan Monnier = <monnier@HIDDEN>: >=20 >>> Very reasonable. Or would you prefer having the sandboxing in = flymake? >>=20 >> AFAICT this question refers to a minor implementation detail ;-) >=20 > Of course, sorry. >=20 > Looks like I forgot to attach the updated patch in a previous message. = Here it is. >=20 > <0001-Add-macOS-sandboxing-bug-45198.patch> Looks generally fine, just a few minor comments. > diff --git a/lisp/subr.el b/lisp/subr.el > index c2be26a15f..196512c0c6 100644 > --- a/lisp/subr.el > +++ b/lisp/subr.el Should this maybe be in a platform-specific file such as ns-fns.el (like = dos-fns.el, w32-fns.el)? > @@ -6262,4 +6262,22 @@ internal--format-docstring-line > This is intended for internal use only." > (internal--fill-string-single-line (apply #'format string = objects))) > =20 > +(when (eq system-type 'darwin) > + (defun darwin-sandbox-enter (dirs) I don't think we use the "darwin-" prefix anywhere else in Emacs. Maybe = use a "ns-" prefix. Also I think such internal functions commonly have an "internal" piece = somewhere in their name, e.g. "ns-enter-sandbox-internal". > + "Enter a sandbox only permitting reading files under DIRS. > +DIRS is a list of directory names. Most other operations such as > +writing files and network access are disallowed. > +Existing open descriptors can still be used freely. > + > +This is not a supported interface and is for internal use only." > + (darwin-sandbox-init Can you also refer to the documents listed below, so that readers aren't = wondering what this syntax means? > + (concat "(version 1)\n" Since this uses Lisp syntax, maybe use (prin1-to-string `(...))? > + "(deny default)\n" > + ;; Emacs seems to need /dev/null; allowing it does no = harm. > + "(allow file-read* (path \"/dev/null\"))\n" > + (mapconcat (lambda (dir) > + (format "(allow file-read* (subpath %S))\n" = dir)) Are you sure that the string quoting syntaxes are compatible? We really = need to avoid injection attacks here. > + dirs "")))) > + ) > + > ;;; subr.el ends here > diff --git a/src/sysdep.c b/src/sysdep.c > index d940acc4e0..44e8b82bc6 100644 > --- a/src/sysdep.c > +++ b/src/sysdep.c > @@ -4286,8 +4286,40 @@ str_collate (Lisp_Object s1, Lisp_Object s2, > } > #endif /* WINDOWSNT */ > =20 > +#ifdef DARWIN_OS > + > +/* This function prototype is not in the platform header files. > + See = https://reverse.put.as/wp-content/uploads/2011/09/Apple-Sandbox-Guide-v1.0= .pdf > + and = https://chromium.googlesource.com/chromium/src/+/master/sandbox/mac/seatbe= lt_sandbox_design.md */ Thanks, I'd expect at least the Chromium reference to stick around. > +int sandbox_init_with_parameters(const char *profile, > + uint64_t flags, > + const char *const parameters[], > + char **errorbuf); > + > +DEFUN ("darwin-sandbox-init", Fdarwin_sandbox_init, = Sdarwin_sandbox_init, Similar comments about naming here; maybe call this = ns-init-sandbox-internal or so. > + 1, 1, 0, > + doc: /* Enter a sandbox whose permitted access is curtailed by = PROFILE. > +Already open descriptors can be used freely. > +PROFILE is a string in the macOS sandbox profile language, > +a set of rules in a Lisp-like syntax. I'd also refer to the Chromium document here, otherwise C-h f for this = function won't be very useful. > + > +This is not a supported interface and is for internal use only. */) > + (Lisp_Object profile) > +{ > + CHECK_STRING (profile); > + char *err =3D NULL; > + if (sandbox_init_with_parameters (SSDATA (profile), 0, NULL, &err) = !=3D 0) If you're using SSDATA, better check that the string doesn't contain = embedded null bytes. Also does this need to be encoded somehow? What happens if the string = contains non-Unicode characters like raw bytes? > + error ("sandbox error: %s", err); This looks like an error that clients could handle, so I'd signal a = specific error symbol here. > + return Qnil; > +} > + > +#endif /* DARWIN_OS */ > + > void > syms_of_sysdep (void) > { > defsubr (&Sget_internal_run_time); > +#ifdef DARWIN_OS > + defsubr (&Sdarwin_sandbox_init); > +#endif > } > diff --git a/test/src/emacs-tests.el b/test/src/emacs-tests.el This should probably be in subr-tests.el since it tests a function in = subr.el. > index 09f9a248ef..c1a741c359 100644 > --- a/test/src/emacs-tests.el > +++ b/test/src/emacs-tests.el > @@ -210,4 +210,74 @@ emacs-tests/bwrap/allows-stdout > (should (eql status 0))) > (should (equal (string-trim (buffer-string)) "Hi")))))) > =20 > +(defun emacs-tests--darwin-run-sandboxed-emacs (sandbox-dirs body) > + "Run Emacs and evaluate BODY, only allowing reads from = SANDBOX-DIRS. > +If SANDBOX-DIRS is `no-sandbox', then run without sandbox. > +Return (EXIT-STATUS . OUTPUT), where OUTPUT is stderr and stdout." > + (let ((emacs (expand-file-name invocation-name = invocation-directory)) > + (process-environment nil)) > + (with-temp-buffer > + (let* ((prog `(progn > + ,@(and (not (eq sandbox-dirs 'no-sandbox)) > + `((darwin-sandbox-enter = ',sandbox-dirs))) > + ,@body)) > + (res (call-process emacs nil t nil > + "--quick" "--batch" > + (format "--eval=3D%S" prog)))) > + (cons res (buffer-string)))))) This is more of a personal style, feel free to ignore: I like tests that are somewhat repetitive but more decoupled and easier = to read better than tests with factored-out assertions. See e.g. the = arguments in = https://www.maaikebrinkhof.nl/2016/03/repetition-in-testing/ and = https://stackoverflow.com/a/130038. > + > +(ert-deftest emacs-tests/darwin-sandbox () > + (skip-unless (eq system-type 'darwin)) > + (emacs-tests--with-temp-file test-file ("test") > + (let ((some-text "abcdef") > + (other-text "ghijkl") > + (test-file (file-truename test-file))) ; resolve symlinks > + (with-temp-buffer > + (insert some-text) > + (write-file test-file)) > + > + ;; Read the file without allowing its directory -- should fail. > + (let ((res-out (emacs-tests--darwin-run-sandboxed-emacs > + nil > + `((find-file-literally ,test-file) > + (message "OK: %s" (buffer-string)))))) > + (ert-info ((cdr res-out) :prefix "output: ") > + (should-not (equal (car res-out) 0)) > + (should-not (string-search some-text (cdr res-out))))) > + > + ;; Read the file allowing its directory -- should succeed. > + (let ((res-out (emacs-tests--darwin-run-sandboxed-emacs > + (list (file-name-directory test-file)) > + `((find-file-literally ,test-file) > + (message "OK: %s" (buffer-string)))))) > + (should (equal res-out (cons 0 (format "OK: %s\n" = some-text))))) > + > + ;; Write to the file allowing directory reads -- should fail. > + (let ((res-out (emacs-tests--darwin-run-sandboxed-emacs > + (list (file-name-directory test-file)) > + `((with-temp-buffer > + (insert ,other-text) > + (write-file ,test-file)))))) > + (ert-info ((cdr res-out) :prefix "output: ") > + (should-not (equal (car res-out) 0)) > + ;; The file should be unchanged. > + (let ((contents (with-temp-buffer > + (insert-file-contents-literally = test-file) > + (buffer-string)))) > + (should (equal contents some-text))))) > + > + ;; Write to the file without sandbox -- should succeed. > + (let ((res-out (emacs-tests--darwin-run-sandboxed-emacs > + 'no-sandbox > + `((with-temp-buffer > + (insert ,other-text) > + (write-file ,test-file)))))) > + (ert-info ((cdr res-out) :prefix "output: ") > + (should (equal (car res-out) 0)) > + ;; The file should be changed. > + (let ((contents (with-temp-buffer > + (insert-file-contents-literally = test-file) > + (buffer-string)))) > + (should (equal contents other-text)))))))) These should be four separate tests, as they test four separate things.=
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 19:23:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 15:23:53 2021 Received: from localhost ([127.0.0.1]:44666 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXqXo-0000gX-L8 for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:23:52 -0400 Received: from eggs.gnu.org ([209.51.188.92]:52554) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1lXqXm-0000gK-C6 for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:23:50 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38923) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1lXqXd-0004m1-HX; Sat, 17 Apr 2021 15:23:42 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2806 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1lXqXd-0003Vt-07; Sat, 17 Apr 2021 15:23:41 -0400 Date: Sat, 17 Apr 2021 22:23:26 +0300 Message-Id: <83fszovhox.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> In-Reply-To: <CAArVCkT-xh4oJ5a1Bgctn62DMNK5_xw5+mg1jRZchV1Pcrq0bQ@HIDDEN> (message from Philipp Stephani on Sat, 17 Apr 2021 21:14:02 +0200) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <83tuo4vqet.fsf@HIDDEN> <CAArVCkQq5Zrdk31wdoDmTSqbEc+aPHdLy8w9ZuZmzQ2t83NSjw@HIDDEN> <83r1j8vpku.fsf@HIDDEN> <CAArVCkT-xh4oJ5a1Bgctn62DMNK5_xw5+mg1jRZchV1Pcrq0bQ@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefankangas@HIDDEN, joaotavora@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > From: Philipp Stephani <p.stephani2@HIDDEN> > Date: Sat, 17 Apr 2021 21:14:02 +0200 > Cc: Mattias Engdegård <mattiase@HIDDEN>, > João Távora <joaotavora@HIDDEN>, > 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, > Stefan Monnier <monnier@HIDDEN>, Alan Third <alan@HIDDEN> > > > "Performing computations" in Emacs corresponds to invoking gobs of > > system interfaces, and if we are going to filter most of them, I fear > > we will get a dysfunctional Emacs. E.g., cursor blinking requires > > accessing the system time, displaying a busy cursor requires interval > > timers, profiling requires signals, and you cannot do anything in > > Emacs without being able to allocate memory. If we leave Emacs only > > with capabilities to read and write to a couple of descriptors, how > > will the result be useful? > > We would definitely allow more stuff (e.g. some other syscalls are > required for Emacs to even start up). For example, Emacs needs to > allocate memory and thus needs mmap/sbrk. Timing functions are not > security-sensitive (timing attacks exist, but should be prevented in > this case by blocking any relevant use of the data such obtained), and > signals only affect the sandboxed Emacs process. The two big things we > need to prevent is writing arbitrary files and creating sockets. So you are going to suggest that we rely on some auditing of the syscalls Emacs uses now to decide which ones to filter and which not? If so, how will this work in the future, when Emacs might decide to issue some additional syscalls? who and how will remember to update the filter definitions? And what about users who make local changes in their Emacs? > At least initially we should only care about batch mode, though - > nothing prevents interactive mode in a sandbox in principle, but batch > mode is much easier to deal with, and suffices for the Flymake use > case. I understand why batch mode might be easier to deal with, but I'm not sure we should care more about it just because it's easier.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 19:21:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 15:21:35 2021 Received: from localhost ([127.0.0.1]:44657 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXqVb-0000cs-0d for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:21:35 -0400 Received: from mail-ot1-f42.google.com ([209.85.210.42]:38481) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lXqVZ-0000ce-AO for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:21:33 -0400 Received: by mail-ot1-f42.google.com with SMTP id e89-20020a9d01e20000b0290294134181aeso3061454ote.5 for <45198 <at> debbugs.gnu.org>; Sat, 17 Apr 2021 12:21:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=UlypKpaTBFNvIMIo1Nn1RHKTPh3d9FkdXdPyNNEebk4=; b=spkF/VMZ8q9sunzOvfLEFgFhUExz6IfQrjboELbHhruhBCG9rEefBn8+hp0WkwqN63 ExI1Dh6eu1TJBns9vKEQTrabFB/kBk6uAat83cLG5WLJrXjKYbPFHXwFQbfkyMwvTLMV w19TtDIud6SsoCDsIbr5TfNpNRjcAE5hjKc32UHBKPfkBIerGiWxEcd/yxUASQK564R5 6bAk0o4moTfmkpULqpvtC3LBHPPmIcnd770xs2g1l2NMhpuTBmaZiZZnWfTFV8ijbvSY 9gp4Rr4M76Q/md1f70SmqlDsGHesL9r5EUnpHbnxVD2+ct8IdNpl1jS4+oC1Vitd4At7 JcYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=UlypKpaTBFNvIMIo1Nn1RHKTPh3d9FkdXdPyNNEebk4=; b=aXeshdgK4+GgzEPBJnO+9BtkfM8FdadPiJXso5DxIb4OVaXl84zkP+VWj6yahgl/Bw A3B599Hp0bprH08GohzH37yqpxcwILg3lZc25LrDD7rVPBFm8cGhfgV30A5kXlWbiBC/ YqyVKfWLNOtG826F1I7myGTEJ8Id+LAHG6mnOZW89kKGIgGCYmchTYtqYsoJ9JggPHEs VCZWkWTtXAv6RkaQcx/ITiFXJfVRWMVANNbMazZTFK74ipAYeJetjT2mGnkkfY8V/zwl 2qy/5XAzNLMGoqZuThxBpIu8r0jynSCF9zp8Y0nIrU3EpTAokQWAuwz0x76hjwI7C8Qb j7iQ== X-Gm-Message-State: AOAM532vhcUA/oJjlVm63xRT3ffBb71SFaZvK2p5fjZV7Nymo2G9PhRW Arkt8MlnZmsJrdw5EXTzZW7jLKv85D5RAkH38tI= X-Google-Smtp-Source: ABdhPJxtWSUeO0Uy70jv6wY4NOpmuPPY68UTKkTM6Uqtxc6amF1erIfqpo7p6GvJtOsVdjTdRMXKW8qt7fO5Z0kBm7w= X-Received: by 2002:a05:6830:4121:: with SMTP id w33mr8569588ott.153.1618687287755; Sat, 17 Apr 2021 12:21:27 -0700 (PDT) MIME-Version: 1.0 References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <077448DE-3E4E-4821-8F5C-5CA62BF217E5@HIDDEN> <jwvzgxw6bl8.fsf-monnier+emacs@HIDDEN> In-Reply-To: <jwvzgxw6bl8.fsf-monnier+emacs@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sat, 17 Apr 2021 21:21:16 +0200 Message-ID: <CAArVCkRA-xBkVgGzaytx6zngWpsWZP+D2G7S2acM+MvHpNc=LA@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefan@HIDDEN>, Alan Third <alan@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Sa., 17. Apr. 2021 um 19:57 Uhr schrieb Stefan Monnier <monnier@HIDDEN>: > > >> As we gain more experience with these sandboxing mechanisms, we can look > >> at relaxing these restrictions, but I think initially we should > >> be conservative. > > > > I take the opposite view, but our goals are the same and we will converge. > > I guess the conversion goes like: > - define "low-level" interfaces to OS-specific functionality. They can > be as close to the OS's own featureset as we want. They don't > really need to be stable over time (especially not at the beginning). I guess it would still make sense to stabilize them with Emacs 28. These interfaces can be useful in their own right, and I guess people will start using them once available. > - define an OS-agnostic API on top of them. This one needs to be > conservative and should evolve more slowly, paying attention to > backward compatibility. > > Yes.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 19:19:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 15:19:54 2021 Received: from localhost ([127.0.0.1]:44651 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXqTy-0000ZZ-L4 for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:19:54 -0400 Received: from mail-oi1-f181.google.com ([209.85.167.181]:33397) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lXqTx-0000ZO-Jy for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:19:53 -0400 Received: by mail-oi1-f181.google.com with SMTP id l131so26398992oih.0 for <45198 <at> debbugs.gnu.org>; Sat, 17 Apr 2021 12:19:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Ui8F8rSDXUU0+2TtgS0qCZ5bnr0trQvRNjtgldxJAHs=; b=PKXQR96onIOTna9VMp9DJnkquBG7vgux5dCXKNK1vLiIkDcU2OVshBQbpWMmJv2xsY 6kRkEzhK7JWFfnnVNYnSZsDgFPsnn/jTKeR7DNAr8IUPruGzMbrvdva2EUEjiBsjhLvd tEkgsugdoLdqMlehKic1WirReOZ+yEKU4lzilH28wWMOdYV5MaOVOx13+7ZJUpwK9gMQ e6QtEuLOtC9ayHSEHUX9qZBuVMd62g3CHjV27tV5YRLdj5aids1jKW7cSmLbaYK9uLhy zKAxpjJEU08jTbbcGdrQSwHQjJ5gofvwwEJmRkCIVN2BKig1UGtuQyH/qo84PnZSB6pf kkgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Ui8F8rSDXUU0+2TtgS0qCZ5bnr0trQvRNjtgldxJAHs=; b=uWHMtSAqgQNpaTPNr4NNTiRlA32BxbRhCnXTdJuMTzMhkIRd0WN9L0m1/tJnJwZaBA H3IqP+Cjt4cnvw8wHNXWTDOx59aXlq97bh/CNpn5kAG9r0v3YAtbBU4jOxqsDgygXyQ9 zl0Ez0WRxfmR4ZKT6i/XXa6sWbk9LKUvST5h9To+/3mpGS9u1nakoLzQACxA5QdY4Maz La3A4z8F4ghG9UHgQjzca+fTWLDHgTJPFOsxe/nNlBC4ZeoFdxhI6+mSoamzE9ScB+eC CHLYAMmJlzacopJyE+Yy1xnC9NrPZ7A8vHgMpchCUw3yvQgE/3V41PrjQ9g6YI7kvU3T mq2A== X-Gm-Message-State: AOAM533cV8GVq9OeWkJz04Twh0J4s49AC1+3Iaz2Sukeu86pgLEUk+vN EZvAf8cGXQH5x9BXVLMIiSp4MByTORnGd4TNM60= X-Google-Smtp-Source: ABdhPJzxdR2MdvIpmGysf2aVVMty+y/8QYWs07GdiMDSew0X2jGZXPzHPAQNJ23ulmGVKvpbRyQ7ahImmAfdaMgSxDU= X-Received: by 2002:a54:4582:: with SMTP id z2mr10904177oib.158.1618687188092; Sat, 17 Apr 2021 12:19:48 -0700 (PDT) MIME-Version: 1.0 References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <AAAE6F07-7424-4632-B2DB-528649DB412A@HIDDEN> In-Reply-To: <AAAE6F07-7424-4632-B2DB-528649DB412A@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sat, 17 Apr 2021 21:19:37 +0200 Message-ID: <CAArVCkSQsWT+TaXjj4xGYSg+5x+QXdJf0Ogfo_yQeoEME7CMng@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Alan Third <alan@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am Sa., 17. Apr. 2021 um 19:48 Uhr schrieb Mattias Engdeg=C3=A5rd <mattiase= @acm.org>: > > 17 apr. 2021 kl. 18.10 skrev Philipp <p.stephani2@HIDDEN>: > > > (cl-defun start-sandbox (function &key readable-directories stdout-buff= er) ...) > > (defun wait-for-sandbox (sandbox) ...) > > > > where start-sandbox returns an opaque sandbox object running FUNCTION t= hat wait-for-sandbox can wait for. That should be generic enough that it's= extensible and implementable on several platforms, and doesn't lock us int= o specific implementation choices. > > That's probably a nice interface. A slightly more low-level mechanism is = what I had in mind, a `make-process` variant that starts an Emacs subproces= s with the required arguments to set up a sandbox and leaving it to the use= r to supply remaining arguments. But maybe we are really talking about more= or less the same thing. Yes, that would essentially be how start-sandbox would get implemented. In the Seccomp case, something like (conceptually) (start-process "bwrap ... -- emacs --seccomp=3D... --quick --batch --eval=3DFUNCTION") where bwrap can set up mount namespaces to restrict the filesystem.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 19:17:18 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 15:17:18 2021 Received: from localhost ([127.0.0.1]:44633 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXqRS-0000Uy-2F for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:17:18 -0400 Received: from mail-oi1-f172.google.com ([209.85.167.172]:38743) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lXqRQ-0000Ul-AY for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:17:16 -0400 Received: by mail-oi1-f172.google.com with SMTP id b3so16670258oie.5 for <45198 <at> debbugs.gnu.org>; Sat, 17 Apr 2021 12:17:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=nIoZfurH2fSj/N2kyoXQ/C9rMXi9bnzR1Il8xlU6ywo=; b=RbI0RgSCSgpbKDCAXqDZkBHN/Ud1HG8XMQeKscv9BHVAP+Ge3oihn0QbJi97ynRLKT sqt5cB2ix/l7AC6Hef4JsLkxx7mWy0Q2ryaPyLvCm7ctdqCqEg4Qbs9xHHQtVBur6sCu GXfUPVbMMc9Ad3piu52L85ZM/s4d4NXyIGzM+VAmPvwvW84nVeHC1Eyt5MzPnxfXPXQz LQ06gMVjyWufKzuvcoiMqOOWY8IwnqDQtnc1d3yrCcDDU8BuJ/rPhIdsMMaWalCWopZa paazvHEgsMA6prgOsnIac3RuXXDH+efcr6ZPd+kHrsO3MQEP65f+pOvHDwBaVCmBHnvM 3HXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=nIoZfurH2fSj/N2kyoXQ/C9rMXi9bnzR1Il8xlU6ywo=; b=JrwbGgVmIarDmsoIvCSDEcXwJBkawomMwzoL8/sad1ZQe2XwgAjy4hD3UJOPu9NMIK EShGohaq60Mrynj8LO9TrnWOhmholO92QxM9YvLTthM9fyRNRA3ZqLjIeI8jURSsXjEn ndQpZt4OajLUhN0prHKqsXDuJmS1BKnb7qvHBgCuQ+RThvAvVqZZelBFRhQxr5YA79S+ CIRZch1IJP88J6hYAA36rrvbsw+PWVJksqofU12jQIz8m9A3TmmPjwbUfn5pG9e4xeMC FQaguszvzL2ZqnZHTSOOsH9jpy5ZjHJseOtk9bcB1QiCD+MSTaJNwcATp8D7Ruvn+iTW 1EBA== X-Gm-Message-State: AOAM533MA69xn2vj1aJBaNMhmGHNepW7ztQAJHEjKa66l0LH+SnqcRUP i8LqcrBJi/tVaMxtPFOiXPCvdcBwMSBP1JcXC2U= X-Google-Smtp-Source: ABdhPJw2U9NXFWTpwoaXuVy5tEjjwZvZIQGhVTCs47AcFcWtGaobGJ4Dm0I4FQ0c5LD0c/OVNvQxcAKTDEOW27x4PQA= X-Received: by 2002:aca:1814:: with SMTP id h20mr10680934oih.150.1618687030888; Sat, 17 Apr 2021 12:17:10 -0700 (PDT) MIME-Version: 1.0 References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <077448DE-3E4E-4821-8F5C-5CA62BF217E5@HIDDEN> In-Reply-To: <077448DE-3E4E-4821-8F5C-5CA62BF217E5@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sat, 17 Apr 2021 21:16:59 +0200 Message-ID: <CAArVCkTxLx2Mmap-F_cEzi1gPJBqA7_mpydFLKTqXFnNiAp_4A@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, Alan Third <alan@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am Sa., 17. Apr. 2021 um 19:22 Uhr schrieb Mattias Engdeg=C3=A5rd <mattiase= @acm.org>: > > As we gain more experience with these sandboxing mechanisms, we can loo= k at relaxing these restrictions, but I think initially we should be conser= vative. > > I take the opposite view, but our goals are the same and we will converge= . As long as they converge before releasing Emacs 28, fine. After that it will be very difficult to restrict an initially-open interface. > >> +Already open descriptors can be used freely. */) > > > > What does this mean? Emacs doesn't really expose file descriptors to u= sers. > > It sort of does (in the form of processes), but there could also be descr= iptors not directly exposed. It would be incomplete not to mention the poss= ibility. It looks like the seccomp filter generator uses the same policy, t= reating descriptors as capabilities. Yes, but since it's only a command-line flag right now, there shouldn't be any open file descriptors except the standard ones, so this specific bit of complexity is avoided.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 19:14:37 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 15:14:37 2021 Received: from localhost ([127.0.0.1]:44619 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXqOn-0000Pd-9I for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:14:37 -0400 Received: from eggs.gnu.org ([209.51.188.92]:50786) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1lXqOl-0000PQ-9w for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:14:31 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38717) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1lXqOf-0007eA-0M; Sat, 17 Apr 2021 15:14:25 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2235 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1lXqOe-0002YY-CL; Sat, 17 Apr 2021 15:14:24 -0400 Date: Sat, 17 Apr 2021 22:14:09 +0300 Message-Id: <83im4kvi4e.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> In-Reply-To: <jwv7dl069cy.fsf-monnier+emacs@HIDDEN> (message from Stefan Monnier on Sat, 17 Apr 2021 14:47:34 -0400) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <jwva6pwalxc.fsf-monnier+emacs@HIDDEN> <83o8ecvnok.fsf@HIDDEN> <jwv5z0k7qeg.fsf-monnier+emacs@HIDDEN> <83lf9gvktv.fsf@HIDDEN> <jwv7dl069cy.fsf-monnier+emacs@HIDDEN> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, p.stephani2@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > From: Stefan Monnier <monnier@HIDDEN> > Cc: mattiase@HIDDEN, joaotavora@HIDDEN, p.stephani2@HIDDEN, > stefan@HIDDEN, 45198 <at> debbugs.gnu.org, alan@HIDDEN > Date: Sat, 17 Apr 2021 14:47:34 -0400 > > >> Normally, this untrusted ELisp code (the one present within > >> `eval-when-compile` and macros defined within the file) limits itself to > >> quite simple sexp manipulation, so the sandboxing can be quite > >> restrictive, disallowing things like user interaction, uses of > >> subprocesses, or writing to files. > > How is this different from byte-compiling some code, e.g. one > > downloaded from some elpa? > > The normal way to enable flymake is something like > > (add-hook 'emacs-lisp-mode #'flymake-mode) > > so the file gets compiled just because you're looking at it. > That's quite different from an explicit request from the user to compile > a file. It is? Sorry, I don't see the difference, not a significant one. If you are implying that one does something conscious and deliberate before byte-compiling a file, then one could also remove Flymake from the hook while at that.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 19:14:22 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 15:14:22 2021 Received: from localhost ([127.0.0.1]:44616 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXqOb-0000PE-UE for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:14:22 -0400 Received: from mail-oi1-f176.google.com ([209.85.167.176]:33566) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lXqOZ-0000P1-Gm for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 15:14:20 -0400 Received: by mail-oi1-f176.google.com with SMTP id l131so26389818oih.0 for <45198 <at> debbugs.gnu.org>; Sat, 17 Apr 2021 12:14:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=7i4zwekH/SOmp47Odq46RfyKqQQAKHZjjgO0KhadM88=; b=AAfiPJe9ISmfdxdZl7fAqZW7HANbxqIzvRLJ80dH9vcP9v9s1noGc42k2kLLrka7Fw Xf9oHES7ifv0fME8vwIaCIoVgRjrxZ+T64UahogZEANYM+V9BL7lbby+3KzeI978M1Bo RBLGksGXq+OisiISGQ//DZok0tpQitXTDVp9ACrcr3Vtsa6KSF9X70Y0Ew3/Z6NhGSDZ F2CAy8Vdm+o5OOXkVosrpKpGUD0CQTwNYBu8g1WxMe+mng2jEKGDieWHbKvcRhXIlpWU HGNzN+crD2BSONdqeMQoWl/CqgHhTXrz8sZjz1rAVdjp3VVz+7vdGaHOqBDfASsD+cCc ZDUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=7i4zwekH/SOmp47Odq46RfyKqQQAKHZjjgO0KhadM88=; b=U0DkR5CEE3MQeqc8rxHzBJEo2Uo6KzeWkHqSSWvDqldirw9i8cpbLj6Mf1yr0IpNsf rVB1eTCA8qCWfpo/sbw0AcP2smwRmPXXdY1KtfyiWFCaMQa1zBXwGPxC939pfEgeF1Yt arOouyOq9+N29OdGk2JJHcq1GF24f2nfAtpgfdMWFOKweZeDPAh6Ups4TV82wtVwUbVY Yy9SfX0bLqpvrA5Y18Mu7BFM+/DfUKXJ49mr/3VovUyi6VxhLLSv+qLdnqFZRdKEgPho tTEI3g6lHwQlup069C9QZzfRdUuy7ZG6edUi+iUOGrFL5X51Gc2iLt6xuHhrp1MPj13E lwew== X-Gm-Message-State: AOAM532B9TdOz2uGBkHEYdn80N+RsMoJrPpwoXTysby+OceMAxN5UF7G AIlu7HsDfB1o6jf46HCsy70ABlhmOwpBOVuC6go= X-Google-Smtp-Source: ABdhPJy8YQKW6XTl8wa+/fFCGwShE4psCRdmLu3oAl6kCu7v/fcpZ6AOr0hhyrk0KWEMgt/qzP5LHRqwQtvzdDwjh2U= X-Received: by 2002:aca:1814:: with SMTP id h20mr10675550oih.150.1618686853920; Sat, 17 Apr 2021 12:14:13 -0700 (PDT) MIME-Version: 1.0 References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <83tuo4vqet.fsf@HIDDEN> <CAArVCkQq5Zrdk31wdoDmTSqbEc+aPHdLy8w9ZuZmzQ2t83NSjw@HIDDEN> <83r1j8vpku.fsf@HIDDEN> In-Reply-To: <83r1j8vpku.fsf@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sat, 17 Apr 2021 21:14:02 +0200 Message-ID: <CAArVCkT-xh4oJ5a1Bgctn62DMNK5_xw5+mg1jRZchV1Pcrq0bQ@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Eli Zaretskii <eliz@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Alan Third <alan@HIDDEN>, =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am Sa., 17. Apr. 2021 um 18:33 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>: > > > From: Philipp Stephani <p.stephani2@HIDDEN> > > Date: Sat, 17 Apr 2021 18:20:15 +0200 > > Cc: Mattias Engdeg=C3=A5rd <mattiase@HIDDEN>, > > Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN>, > > 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, > > Stefan Monnier <monnier@HIDDEN>, Alan Third <alan@idioc= y.org> > > > > That's a fair statement, and I'll try to answer here (and hopefully > > later in the other thread as well). The sandbox should be able to > > perform operations that are in some sense not security-relevant: > > mostly performing computations, reading some necessary files, and > > writing some diagnostics to standard output. The initial use case can > > be running byte compilation in a Flymake backend. This would allow us > > to enable Flymake byte compilation support by default, even on > > untrusted code, because due to the sandbox that code could never > > perform harmful operations. The Flymake backend would then use the > > high-level sandbox functions to asynchronously start byte compilation > > in a sandbox. The start-sandbox function in turn would launch an Emacs > > subprocess using bwrap or similar to set up appropriate mount > > namespaces and apply a Seccomp filter (in the GNU/Linux case). > > Thanks. I think I understand the general idea, but not how to > translate that into real life. > > "Performing computations" in Emacs corresponds to invoking gobs of > system interfaces, and if we are going to filter most of them, I fear > we will get a dysfunctional Emacs. E.g., cursor blinking requires > accessing the system time, displaying a busy cursor requires interval > timers, profiling requires signals, and you cannot do anything in > Emacs without being able to allocate memory. If we leave Emacs only > with capabilities to read and write to a couple of descriptors, how > will the result be useful? We would definitely allow more stuff (e.g. some other syscalls are required for Emacs to even start up). For example, Emacs needs to allocate memory and thus needs mmap/sbrk. Timing functions are not security-sensitive (timing attacks exist, but should be prevented in this case by blocking any relevant use of the data such obtained), and signals only affect the sandboxed Emacs process. The two big things we need to prevent is writing arbitrary files and creating sockets. At least initially we should only care about batch mode, though - nothing prevents interactive mode in a sandbox in principle, but batch mode is much easier to deal with, and suffices for the Flymake use case. > Even if Flymake byte compilation can live > in such a sandbox (and I'm not yet certain it can), is that the most > important situation where untrusted code could be run by Emacs? It's at least the situation described here, and I think it's pretty important. Another potential use case would be to allow some buffer-local evaluation.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 18:59:19 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 14:59:19 2021 Received: from localhost ([127.0.0.1]:44584 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXqA3-0006L2-7S for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 14:59:19 -0400 Received: from mail1470c50.megamailservers.eu ([91.136.14.70]:55406 helo=mail102c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1lXqA0-0006Ko-Uw for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 14:59:18 -0400 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1618685950; bh=b5FxU/n930a4X9c88pTflNr9aY8MlAuUkgdLo4uM7c8=; h=From:Subject:Date:In-Reply-To:Cc:To:References:From; b=KNYdLciklRVgntmONMTGk8HVxuktMc0yfeV8EW0LYTaGT6V+2ScKXP5gMVO8Em3lx VFJbmCJj4MhwSxBGMm9dI9ctlA88HyCrJlH1KqeECJD0sVxEtNaqnfZv5JxOsFSz/S xINn/9YWBVvbEAzFL6JRQvkgNoYEf+oKTdFFMNqA= Feedback-ID: mattiase@HIDDEN Received: from stanniol.lan (c-b952e353.032-75-73746f71.bbcust.telenor.se [83.227.82.185]) (authenticated bits=0) by mail102c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 13HIx6Et030602; Sat, 17 Apr 2021 18:59:08 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Message-Id: <78F41D0B-D2F6-444C-9B5C-9C50CFF2CFBD@HIDDEN> Content-Type: multipart/mixed; boundary="Apple-Mail=_64FD6A78-046E-4E8B-8A46-7F258849914F" Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode Date: Sat, 17 Apr 2021 20:59:06 +0200 In-Reply-To: <jwvim4k6ade.fsf-monnier+emacs@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <AAAE6F07-7424-4632-B2DB-528649DB412A@HIDDEN> <jwvim4k6ade.fsf-monnier+emacs@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A742F21.607B2FFE.0009, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=KN0k82No c=1 sm=1 tr=0 a=von4qPfY+hyqc0zmWf0tYQ==:117 a=von4qPfY+hyqc0zmWf0tYQ==:17 a=M51BFTxLslgA:10 a=iRZporoAAAAA:8 a=a2_K_BZEX7mNdVaJnwQA:9 a=CjuIK1q_8ugA:10 a=ENOmLqmOUNYA:10 a=wlUJtMPZQSMOdi7ZWyMA:9 a=B2y7HmGcmWMA:10 a=NOBgFS-JBQ2l-kSd6-zu:22 X-Origin-Country: SE X-Spam-Score: 1.4 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 17 apr. 2021 kl. 20.21 skrev Stefan Monnier <monnier@HIDDEN>: >> Very reasonable. Or would you prefer having the sandboxing in flymake? > > AFAICT this question refers to a minor implementation detail ;-) Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, Philipp <p.stephani2@HIDDEN>, joaotavora@HIDDEN, Eli Zaretskii <eliz@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) --Apple-Mail=_64FD6A78-046E-4E8B-8A46-7F258849914F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii 17 apr. 2021 kl. 20.21 skrev Stefan Monnier <monnier@HIDDEN>: >> Very reasonable. Or would you prefer having the sandboxing in = flymake? >=20 > AFAICT this question refers to a minor implementation detail ;-) Of course, sorry. Looks like I forgot to attach the updated patch in a previous message. = Here it is. --Apple-Mail=_64FD6A78-046E-4E8B-8A46-7F258849914F Content-Disposition: attachment; filename=0001-Add-macOS-sandboxing-bug-45198.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Add-macOS-sandboxing-bug-45198.patch" Content-Transfer-Encoding: quoted-printable =46rom=2078906da41140dc33119b419a410c4a4f0a3aee80=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= <mattiase@HIDDEN>=0ADate:=20Sat,=2017=20Apr=202021=2020:53:39=20+0200=0A= Subject:=20[PATCH]=20Add=20macOS=20sandboxing=20(bug#45198)=0A=0AThis=20= is=20the=20corresponding=20low-level=20sandboxing=20facility=20= corresponding=0Ato=20the=20recently=20added=20Seccomp=20for=20Linux.=20=20= `darwin-sandbox-init`=20gives=0Adirect=20access=20to=20the=20system=20= sandboxing=20call;=20`darwin-sandbox-enter`=20is=0Aa=20wrapper=20that=20= takes=20a=20list=20of=20directories=20under=20which=20files=20can=20be=0A= read.=20=20These=20should=20be=20considered=20internal=20mechanisms=20= for=20now.=0A=0A*=20lisp/subr.el=20(darwin-sandbox-enter):=0A*=20= src/sysdep.c=20(Fdarwin_sandbox_init):=20New=20functions.=0A*=20= test/src/emacs-tests.el=20(emacs-tests/darwin-sandbox):=20New=20test.=0A= ---=0A=20lisp/subr.el=20=20=20=20=20=20=20=20=20=20=20=20|=2018=20= +++++++++++=0A=20src/sysdep.c=20=20=20=20=20=20=20=20=20=20=20=20|=2032=20= +++++++++++++++++++=0A=20test/src/emacs-tests.el=20|=2070=20= +++++++++++++++++++++++++++++++++++++++++=0A=203=20files=20changed,=20= 120=20insertions(+)=0A=0Adiff=20--git=20a/lisp/subr.el=20b/lisp/subr.el=0A= index=20c2be26a15f..196512c0c6=20100644=0A---=20a/lisp/subr.el=0A+++=20= b/lisp/subr.el=0A@@=20-6262,4=20+6262,22=20@@=20= internal--format-docstring-line=0A=20This=20is=20intended=20for=20= internal=20use=20only."=0A=20=20=20(internal--fill-string-single-line=20= (apply=20#'format=20string=20objects)))=0A=20=0A+(when=20(eq=20= system-type=20'darwin)=0A+=20=20(defun=20darwin-sandbox-enter=20(dirs)=0A= +=20=20=20=20"Enter=20a=20sandbox=20only=20permitting=20reading=20files=20= under=20DIRS.=0A+DIRS=20is=20a=20list=20of=20directory=20names.=20=20= Most=20other=20operations=20such=20as=0A+writing=20files=20and=20network=20= access=20are=20disallowed.=0A+Existing=20open=20descriptors=20can=20= still=20be=20used=20freely.=0A+=0A+This=20is=20not=20a=20supported=20= interface=20and=20is=20for=20internal=20use=20only."=0A+=20=20=20=20= (darwin-sandbox-init=0A+=20=20=20=20=20(concat=20"(version=201)\n"=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20"(deny=20default)\n"=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20;;=20Emacs=20seems=20to=20need=20/dev/null;=20= allowing=20it=20does=20no=20harm.=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20"(allow=20file-read*=20(path=20\"/dev/null\"))\n"=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20(mapconcat=20(lambda=20(dir)=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(format=20= "(allow=20file-read*=20(subpath=20%S))\n"=20dir))=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20dirs=20""))))=0A+=20=20= )=0A+=0A=20;;;=20subr.el=20ends=20here=0Adiff=20--git=20a/src/sysdep.c=20= b/src/sysdep.c=0Aindex=20d940acc4e0..44e8b82bc6=20100644=0A---=20= a/src/sysdep.c=0A+++=20b/src/sysdep.c=0A@@=20-4286,8=20+4286,40=20@@=20= str_collate=20(Lisp_Object=20s1,=20Lisp_Object=20s2,=0A=20}=0A=20#endif=09= /*=20WINDOWSNT=20*/=0A=20=0A+#ifdef=20DARWIN_OS=0A+=0A+/*=20This=20= function=20prototype=20is=20not=20in=20the=20platform=20header=20files.=0A= +=20=20=20See=20= https://reverse.put.as/wp-content/uploads/2011/09/Apple-Sandbox-Guide-v1.0= .pdf=0A+=20=20=20and=20= https://chromium.googlesource.com/chromium/src/+/master/sandbox/mac/seatbe= lt_sandbox_design.md=20*/=0A+int=20sandbox_init_with_parameters(const=20= char=20*profile,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20uint64_t=20flags,=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20const=20char=20*const=20parameters[],=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20char=20**errorbuf);=0A+=0A+DEFUN=20("darwin-sandbox-init",=20= Fdarwin_sandbox_init,=20Sdarwin_sandbox_init,=0A+=20=20=20=20=20=20=201,=20= 1,=200,=0A+=20=20=20=20=20=20=20doc:=20/*=20Enter=20a=20sandbox=20whose=20= permitted=20access=20is=20curtailed=20by=20PROFILE.=0A+Already=20open=20= descriptors=20can=20be=20used=20freely.=0A+PROFILE=20is=20a=20string=20= in=20the=20macOS=20sandbox=20profile=20language,=0A+a=20set=20of=20rules=20= in=20a=20Lisp-like=20syntax.=0A+=0A+This=20is=20not=20a=20supported=20= interface=20and=20is=20for=20internal=20use=20only.=20*/)=0A+=20=20= (Lisp_Object=20profile)=0A+{=0A+=20=20CHECK_STRING=20(profile);=0A+=20=20= char=20*err=20=3D=20NULL;=0A+=20=20if=20(sandbox_init_with_parameters=20= (SSDATA=20(profile),=200,=20NULL,=20&err)=20!=3D=200)=0A+=20=20=20=20= error=20("sandbox=20error:=20%s",=20err);=0A+=20=20return=20Qnil;=0A+}=0A= +=0A+#endif=09/*=20DARWIN_OS=20*/=0A+=0A=20void=0A=20syms_of_sysdep=20= (void)=0A=20{=0A=20=20=20defsubr=20(&Sget_internal_run_time);=0A+#ifdef=20= DARWIN_OS=0A+=20=20defsubr=20(&Sdarwin_sandbox_init);=0A+#endif=0A=20}=0A= diff=20--git=20a/test/src/emacs-tests.el=20b/test/src/emacs-tests.el=0A= index=2009f9a248ef..c1a741c359=20100644=0A---=20= a/test/src/emacs-tests.el=0A+++=20b/test/src/emacs-tests.el=0A@@=20= -210,4=20+210,74=20@@=20emacs-tests/bwrap/allows-stdout=0A=20=20=20=20=20= =20=20=20=20=20=20(should=20(eql=20status=200)))=0A=20=20=20=20=20=20=20=20= =20(should=20(equal=20(string-trim=20(buffer-string))=20"Hi"))))))=0A=20=0A= +(defun=20emacs-tests--darwin-run-sandboxed-emacs=20(sandbox-dirs=20= body)=0A+=20=20"Run=20Emacs=20and=20evaluate=20BODY,=20only=20allowing=20= reads=20from=20SANDBOX-DIRS.=0A+If=20SANDBOX-DIRS=20is=20`no-sandbox',=20= then=20run=20without=20sandbox.=0A+Return=20(EXIT-STATUS=20.=20OUTPUT),=20= where=20OUTPUT=20is=20stderr=20and=20stdout."=0A+=20=20(let=20((emacs=20= (expand-file-name=20invocation-name=20invocation-directory))=0A+=20=20=20= =20=20=20=20=20(process-environment=20nil))=0A+=20=20=20=20= (with-temp-buffer=0A+=20=20=20=20=20=20(let*=20((prog=20`(progn=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20,@(and=20= (not=20(eq=20sandbox-dirs=20'no-sandbox))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= `((darwin-sandbox-enter=20',sandbox-dirs)))=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20,@body))=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20(res=20(call-process=20emacs=20nil=20t=20nil=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20"--quick"=20"--batch"=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(format=20= "--eval=3D%S"=20prog))))=0A+=20=20=20=20=20=20=20=20(cons=20res=20= (buffer-string))))))=0A+=0A+(ert-deftest=20emacs-tests/darwin-sandbox=20= ()=0A+=20=20(skip-unless=20(eq=20system-type=20'darwin))=0A+=20=20= (emacs-tests--with-temp-file=20test-file=20("test")=0A+=20=20=20=20(let=20= ((some-text=20"abcdef")=0A+=20=20=20=20=20=20=20=20=20=20(other-text=20= "ghijkl")=0A+=20=20=20=20=20=20=20=20=20=20(test-file=20(file-truename=20= test-file)))=20=20=20;=20resolve=20symlinks=0A+=20=20=20=20=20=20= (with-temp-buffer=0A+=20=20=20=20=20=20=20=20(insert=20some-text)=0A+=20=20= =20=20=20=20=20=20(write-file=20test-file))=0A+=0A+=20=20=20=20=20=20;;=20= Read=20the=20file=20without=20allowing=20its=20directory=20--=20should=20= fail.=0A+=20=20=20=20=20=20(let=20((res-out=20= (emacs-tests--darwin-run-sandboxed-emacs=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20nil=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20`((find-file-literally=20,test-file)=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (message=20"OK:=20%s"=20(buffer-string))))))=0A+=20=20=20=20=20=20=20=20= (ert-info=20((cdr=20res-out)=20:prefix=20"output:=20")=0A+=20=20=20=20=20= =20=20=20=20=20(should-not=20(equal=20(car=20res-out)=200))=0A+=20=20=20=20= =20=20=20=20=20=20(should-not=20(string-search=20some-text=20(cdr=20= res-out)))))=0A+=0A+=20=20=20=20=20=20;;=20Read=20the=20file=20allowing=20= its=20directory=20--=20should=20succeed.=0A+=20=20=20=20=20=20(let=20= ((res-out=20(emacs-tests--darwin-run-sandboxed-emacs=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20= (file-name-directory=20test-file))=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20`((find-file-literally=20,test-file)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (message=20"OK:=20%s"=20(buffer-string))))))=0A+=20=20=20=20=20=20=20=20= (should=20(equal=20res-out=20(cons=200=20(format=20"OK:=20%s\n"=20= some-text)))))=0A+=0A+=20=20=20=20=20=20;;=20Write=20to=20the=20file=20= allowing=20directory=20reads=20--=20should=20fail.=0A+=20=20=20=20=20=20= (let=20((res-out=20(emacs-tests--darwin-run-sandboxed-emacs=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20= (file-name-directory=20test-file))=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20`((with-temp-buffer=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(insert=20= ,other-text)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(write-file=20,test-file))))))=0A+=20=20=20=20=20=20= =20=20(ert-info=20((cdr=20res-out)=20:prefix=20"output:=20")=0A+=20=20=20= =20=20=20=20=20=20=20(should-not=20(equal=20(car=20res-out)=200))=0A+=20=20= =20=20=20=20=20=20=20=20;;=20The=20file=20should=20be=20unchanged.=0A+=20= =20=20=20=20=20=20=20=20=20(let=20((contents=20(with-temp-buffer=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(insert-file-contents-literally=20test-file)=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (buffer-string))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20(should=20= (equal=20contents=20some-text)))))=0A+=0A+=20=20=20=20=20=20;;=20Write=20= to=20the=20file=20without=20sandbox=20--=20should=20succeed.=0A+=20=20=20= =20=20=20(let=20((res-out=20(emacs-tests--darwin-run-sandboxed-emacs=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= 'no-sandbox=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20`((with-temp-buffer=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(insert=20,other-text)=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (write-file=20,test-file))))))=0A+=20=20=20=20=20=20=20=20(ert-info=20= ((cdr=20res-out)=20:prefix=20"output:=20")=0A+=20=20=20=20=20=20=20=20=20= =20(should=20(equal=20(car=20res-out)=200))=0A+=20=20=20=20=20=20=20=20=20= =20;;=20The=20file=20should=20be=20changed.=0A+=20=20=20=20=20=20=20=20=20= =20(let=20((contents=20(with-temp-buffer=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (insert-file-contents-literally=20test-file)=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (buffer-string))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20(should=20= (equal=20contents=20other-text))))))))=0A+=0A=20;;;=20emacs-tests.el=20= ends=20here=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=0A= --Apple-Mail=_64FD6A78-046E-4E8B-8A46-7F258849914F--
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 18:47:45 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 14:47:45 2021 Received: from localhost ([127.0.0.1]:44565 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXpyr-00063c-9M for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 14:47:45 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:57329) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1lXpyp-00060v-Bh for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 14:47:43 -0400 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id D08EC100222; Sat, 17 Apr 2021 14:47:37 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 21F061000C9; Sat, 17 Apr 2021 14:47:36 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1618685256; bh=jdBJQySwB7QTSpjeo7wNh94YkHClfEfNRAdydUfGZ4w=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=VPbLsG3akHi2l1m57MT9JogxKrbxPaQljfizDoNahgHV0qP88LulwqEh5cO/5gPvi HIMUzUWehQ93XJobh6VAdPQ/CMyRdUeYJr2YRXyekCBndHcCK1+lk73vr2w8diSTzv TVHl+glho6JNHIaKYwzB7vF4Rn3PlFcLtf1V52wh51Al3y/HGdVMdX3hWX2mz1ge7v ZUewQKc9gCNxFQPKmL42DqE07AJv70hypLzH9Rw2C2AfIegBl3y/ma2XlZGBAEGIoL yRZXEg+9JkWruANLgkkdSFVh3tmkkc9ChZegYd7BNwiZEAKvqinfppqfhrS64ncrPC wmdnqZtCdOmHg== Received: from alfajor (104-222-126-84.cpe.teksavvy.com [104.222.126.84]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id CC4671201B3; Sat, 17 Apr 2021 14:47:35 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwv7dl069cy.fsf-monnier+emacs@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <jwva6pwalxc.fsf-monnier+emacs@HIDDEN> <83o8ecvnok.fsf@HIDDEN> <jwv5z0k7qeg.fsf-monnier+emacs@HIDDEN> <83lf9gvktv.fsf@HIDDEN> Date: Sat, 17 Apr 2021 14:47:34 -0400 In-Reply-To: <83lf9gvktv.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 17 Apr 2021 21:15:40 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.021 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, p.stephani2@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> Normally, this untrusted ELisp code (the one present within >> `eval-when-compile` and macros defined within the file) limits itself to >> quite simple sexp manipulation, so the sandboxing can be quite >> restrictive, disallowing things like user interaction, uses of >> subprocesses, or writing to files. > How is this different from byte-compiling some code, e.g. one > downloaded from some elpa? The normal way to enable flymake is something like (add-hook 'emacs-lisp-mode #'flymake-mode) so the file gets compiled just because you're looking at it. That's quite different from an explicit request from the user to compile a file. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 18:21:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 14:21:35 2021 Received: from localhost ([127.0.0.1]:44523 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXpZX-0001A3-FH for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 14:21:35 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:47125) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1lXpZW-00019o-Nf for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 14:21:35 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 633C9440A28; Sat, 17 Apr 2021 14:21:29 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 16819440826; Sat, 17 Apr 2021 14:21:28 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1618683688; bh=R53Ikd8hsBi/HTFdnoND971Bh4SPf2QO8zOMVN649qc=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=GnxfZi5+vjCu5+NbHJ9k1deeaxPGSzLR2Z3JZ8Pdddlfkr2Aj6t5zjwiU0J1Cuyno O7LLCyEsb4lJuzZQCQiHazBDt6gJmicmYd+mNBkD0HkG4P6YRS/bHa++otVpdIgQA9 enWMTjR9miqeUzFat8RF1LjzytkyXlDL56x58okn2ZRGlTTpofIN70fXXg2N3Qc2+s CK7rsTZ4oX7Bo7YThkoa7UVqvKMfI9hKtm+Dy6LbYb52e/6uLiTf/ZgM005V3J+LZe bkj/MNfQR9Xa+hDcWINPgdLH3al5Kxotlab/gP0pgAWkwNCywdLp0JqyUZ9XW+sEgy PgnAHvCfJpO0g== Received: from alfajor (104-222-126-84.cpe.teksavvy.com [104.222.126.84]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id A660C1201E0; Sat, 17 Apr 2021 14:21:27 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Mattias =?windows-1252?Q?Engdeg=E5rd?= <mattiase@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwvim4k6ade.fsf-monnier+emacs@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <AAAE6F07-7424-4632-B2DB-528649DB412A@HIDDEN> Date: Sat, 17 Apr 2021 14:21:25 -0400 In-Reply-To: <AAAE6F07-7424-4632-B2DB-528649DB412A@HIDDEN> ("Mattias =?windows-1252?Q?Engdeg=E5rd=22's?= message of "Sat, 17 Apr 2021 19:48:15 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.104 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, Philipp <p.stephani2@HIDDEN>, joaotavora@HIDDEN, Eli Zaretskii <eliz@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> My primary target is `elisp-flymake--batch-compile-for-flymake`. > Very reasonable. Or would you prefer having the sandboxing in flymake? AFAICT this question refers to a minor implementation detail ;-) Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 18:16:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 14:16:08 2021 Received: from localhost ([127.0.0.1]:44513 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXpUC-00011i-DZ for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 14:16:08 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41938) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1lXpUA-000117-4R for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 14:16:02 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:37956) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1lXpU3-0006nx-GT; Sat, 17 Apr 2021 14:15:55 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2547 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1lXpU2-0005EH-FX; Sat, 17 Apr 2021 14:15:55 -0400 Date: Sat, 17 Apr 2021 21:15:40 +0300 Message-Id: <83lf9gvktv.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> In-Reply-To: <jwv5z0k7qeg.fsf-monnier+emacs@HIDDEN> (message from Stefan Monnier on Sat, 17 Apr 2021 13:53:34 -0400) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <jwva6pwalxc.fsf-monnier+emacs@HIDDEN> <83o8ecvnok.fsf@HIDDEN> <jwv5z0k7qeg.fsf-monnier+emacs@HIDDEN> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, p.stephani2@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > From: Stefan Monnier <monnier@HIDDEN> > Cc: mattiase@HIDDEN, joaotavora@HIDDEN, p.stephani2@HIDDEN, > stefan@HIDDEN, 45198 <at> debbugs.gnu.org, alan@HIDDEN > Date: Sat, 17 Apr 2021 13:53:34 -0400 > > >> My primary target is `elisp-flymake--batch-compile-for-flymake`. > > What does that mean in practice? what does that "target" require? > > It needs to take untrusted ELisp code and run it (with no need for user > interaction) in a way that doesn't introduce any security risk. That's too general to allow any meaningful discussion, in particular whether seccomp could be the basis for satisfying those requirements. > Currently the code starts a new Emacs process in batch mode and lets it > do whatever it wants, with all the security problems this entails. > > Normally, this untrusted ELisp code (the one present within > `eval-when-compile` and macros defined within the file) limits itself to > quite simple sexp manipulation, so the sandboxing can be quite > restrictive, disallowing things like user interaction, uses of > subprocesses, or writing to files. How is this different from byte-compiling some code, e.g. one downloaded from some elpa?
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 17:57:49 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 13:57:48 2021 Received: from localhost ([127.0.0.1]:44491 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXpCW-0000ZO-Mk for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 13:57:48 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:42414) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1lXpCV-0000ZB-03 for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 13:57:47 -0400 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 9BA49100222; Sat, 17 Apr 2021 13:57:41 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 1C12C1000C9; Sat, 17 Apr 2021 13:57:40 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1618682260; bh=5Vht8iW61t/XVw3ACaOZgsJIOUe8uLMwR1KMNkG/wj0=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=iwmls/jkoBCn5oAi1l3bMzWFbjjPpLQZv0+6Gm99WG7poEJiMPIMG0YLE/T4U41/7 skLeLOzGizXbzHqj4r1UUC+83L4jR2a5dNJ6O/NB2AkLZbZcTZPZ0WK6a/olgO8Djx 57+devI6p8zw9/6k0wM4UzPNLmskVd85z4J8gObi3McEpAMypQeQgFqRrx+EVdVpEV qsyAJJo7KprZK0a1bv9zXUpmEySwMjZZEntYjycuelN0/iGaqvW16CqkdAu2CLzRlG 8p2gHh68eWVJ4tnuJ+ikfsNqFi+oW+Sj1qyuhB31EFOePo9Rvb61/chsCnG0cKBh9P QYYAK2QbRhYgA== Received: from alfajor (104-222-126-84.cpe.teksavvy.com [104.222.126.84]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id C8D28120191; Sat, 17 Apr 2021 13:57:39 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Mattias =?windows-1252?Q?Engdeg=E5rd?= <mattiase@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwvzgxw6bl8.fsf-monnier+emacs@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <077448DE-3E4E-4821-8F5C-5CA62BF217E5@HIDDEN> Date: Sat, 17 Apr 2021 13:57:38 -0400 In-Reply-To: <077448DE-3E4E-4821-8F5C-5CA62BF217E5@HIDDEN> ("Mattias =?windows-1252?Q?Engdeg=E5rd=22's?= message of "Sat, 17 Apr 2021 19:22:31 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.021 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: =?windows-1252?B?Sm/jbyBU4XZvcmE=?= <joaotavora@HIDDEN>, Philipp <p.stephani2@HIDDEN>, Stefan Kangas <stefan@HIDDEN>, 45198 <at> debbugs.gnu.org, Alan Third <alan@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> As we gain more experience with these sandboxing mechanisms, we can look >> at relaxing these restrictions, but I think initially we should >> be conservative. > > I take the opposite view, but our goals are the same and we will converge. I guess the conversion goes like: - define "low-level" interfaces to OS-specific functionality. They can be as close to the OS's own featureset as we want. They don't really need to be stable over time (especially not at the beginning). - define an OS-agnostic API on top of them. This one needs to be conservative and should evolve more slowly, paying attention to backward compatibility. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 17:53:49 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 13:53:49 2021 Received: from localhost ([127.0.0.1]:44486 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXp8f-0000Tn-43 for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 13:53:49 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:42079) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1lXp8d-0000TZ-Su for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 13:53:48 -0400 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 5B96A8055F; Sat, 17 Apr 2021 13:53:42 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 0594180618; Sat, 17 Apr 2021 13:53:36 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1618682016; bh=9WyRzCLhEI1zlQ7Ku+iNw8LKU4ud/tAHF3skqW6QqtA=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=X/mL8GELE0zUuPDC0I8OG81Ap+tT7rNcXaWd344KuT7ACTjPnQ18LhkxeZ/SD7uMT GxLiMHBzGC8vJujILWGJKYlOti4KrLHKkZ7P1rPnXw1jUtlE8eX+W69j53jEG5G4qX cQhjWIIDmrLXsObDLPZGVBeVXbW0Em3hyPRDY9E2GWF78nlFmdOVkHaxj03VOr66W8 bgxlXq8ejZn3iNfzMY774QsE8QM6G5sBeeGl4o3GjmjI2TvT4pGuHAlg6YZdKG3lik k2ggWaDwU4V1YfKBbL+uuZsM37F3P0Tq0gl2W8fJd8NiaHWdXYqJHLrRhoY/WpRFBl Q9MYcrL1L7dlw== Received: from alfajor (104-222-126-84.cpe.teksavvy.com [104.222.126.84]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id B0A881202BB; Sat, 17 Apr 2021 13:53:35 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwv5z0k7qeg.fsf-monnier+emacs@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <jwva6pwalxc.fsf-monnier+emacs@HIDDEN> <83o8ecvnok.fsf@HIDDEN> Date: Sat, 17 Apr 2021 13:53:34 -0400 In-Reply-To: <83o8ecvnok.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 17 Apr 2021 20:14:03 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.055 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, p.stephani2@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> My primary target is `elisp-flymake--batch-compile-for-flymake`. > What does that mean in practice? what does that "target" require? It needs to take untrusted ELisp code and run it (with no need for user interaction) in a way that doesn't introduce any security risk. Currently the code starts a new Emacs process in batch mode and lets it do whatever it wants, with all the security problems this entails. Normally, this untrusted ELisp code (the one present within `eval-when-compile` and macros defined within the file) limits itself to quite simple sexp manipulation, so the sandboxing can be quite restrictive, disallowing things like user interaction, uses of subprocesses, or writing to files. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 17:48:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 13:48:29 2021 Received: from localhost ([127.0.0.1]:44481 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXp3V-0000MC-DA for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 13:48:29 -0400 Received: from mail1453c50.megamailservers.eu ([91.136.14.53]:47718 helo=mail266c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1lXp3T-0000Ly-5n for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 13:48:28 -0400 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1618681700; bh=JOxJo2KpqX+hhHcUZF7wdaRGumt0FZF0b/QSvM3dS/w=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=CgKNV4kASVqLaW3CphyD/kyphjSadoOiXIpajL0CPTvpP8Ehc3+ZHnrdQyWXUt5Ji q44y33vbSnrlJl5glDX80sXtFc3NbeZr7DM0PFZ20YlAa/QrpVTfLAo1IMxmEvBQ9Z isY8enk8OPO2RKJoWPc5NJGdOI02ge7eq00vNzfo= Feedback-ID: mattiase@HIDDEN Received: from stanniol.lan (c-b952e353.032-75-73746f71.bbcust.telenor.se [83.227.82.185]) (authenticated bits=0) by mail266c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 13HHmFJ9024388; Sat, 17 Apr 2021 17:48:16 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> In-Reply-To: <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> Date: Sat, 17 Apr 2021 19:48:15 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <AAAE6F07-7424-4632-B2DB-528649DB412A@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> To: Philipp <p.stephani2@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A742F20.607B1F64.001A, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=VISjYOHX c=1 sm=1 tr=0 a=von4qPfY+hyqc0zmWf0tYQ==:117 a=von4qPfY+hyqc0zmWf0tYQ==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=pGLkceISAAAA:8 a=iRZporoAAAAA:8 a=pmwR3f5yY_1N4VuMQTwA:9 a=CjuIK1q_8ugA:10 a=NOBgFS-JBQ2l-kSd6-zu:22 X-Origin-Country: SE X-Spam-Score: 1.4 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 17 apr. 2021 kl. 18.10 skrev Philipp <p.stephani2@HIDDEN>: > (cl-defun start-sandbox (function &key readable-directories stdout-buffer) ...) > (defun wait-for-sandbox (sandbox) ...) > > where start-sandbox returns an opaque sandbox object running FUNCTION tha [...] Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, 45198 <at> debbugs.gnu.org, stefankangas@HIDDEN, joaotavora@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) 17 apr. 2021 kl. 18.10 skrev Philipp <p.stephani2@HIDDEN>: > (cl-defun start-sandbox (function &key readable-directories = stdout-buffer) ...) > (defun wait-for-sandbox (sandbox) ...) >=20 > where start-sandbox returns an opaque sandbox object running FUNCTION = that wait-for-sandbox can wait for. That should be generic enough that = it's extensible and implementable on several platforms, and doesn't lock = us into specific implementation choices. That's probably a nice interface. A slightly more low-level mechanism is = what I had in mind, a `make-process` variant that starts an Emacs = subprocess with the required arguments to set up a sandbox and leaving = it to the user to supply remaining arguments. But maybe we are really = talking about more or less the same thing. 17 apr. 2021 kl. 18.58 skrev Stefan Monnier <monnier@HIDDEN>: > My primary target is `elisp-flymake--batch-compile-for-flymake`. Very reasonable. Or would you prefer having the sandboxing in flymake?
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 17:22:40 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 13:22:40 2021 Received: from localhost ([127.0.0.1]:44438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXoeV-00061f-UW for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 13:22:40 -0400 Received: from mail203c50.megamailservers.eu ([91.136.10.213]:58476 helo=mail193c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1lXoeS-00061W-VC for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 13:22:38 -0400 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1618680155; bh=Yda9rMhayL6bAwl+6URONmhJ3B3N+xfmY9YsgJ+8rVQ=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=LJAQGz5o+BFq/daR8DEe1wJxg9J3fNsxyyaP6BP0nx+6QAQiFQX5PLyRSqMQcKomd GfAi1zDP1QyYOD0HgSgy28JEq05Sa7FRrbOwficFI6POHB1OoWF/VhgnRCFzVSSr4H sT2t96eToPUEMA8leYtiSEBHbJZtgFHA79FeL9dA= Feedback-ID: mattiase@HIDDEN Received: from stanniol.lan (c-b952e353.032-75-73746f71.bbcust.telenor.se [83.227.82.185]) (authenticated bits=0) by mail193c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 13HHMW0R023013; Sat, 17 Apr 2021 17:22:33 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> In-Reply-To: <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> Date: Sat, 17 Apr 2021 19:22:31 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <077448DE-3E4E-4821-8F5C-5CA62BF217E5@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> To: Philipp <p.stephani2@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A742F17.607B195B.001E, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=PqLtkDE3 c=1 sm=1 tr=0 a=von4qPfY+hyqc0zmWf0tYQ==:117 a=von4qPfY+hyqc0zmWf0tYQ==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=pGLkceISAAAA:8 a=x48ymFGV-5Z2z8zwfxgA:9 a=CjuIK1q_8ugA:10 X-Origin-Country: SE X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 45198 Cc: 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, Alan Third <alan@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) 17 apr. 2021 kl. 17.44 skrev Philipp <p.stephani2@HIDDEN>: > I think it would be better to first implement the mechanism and not = the high-level `sandbox-enter' function Sorry, there's a misunderstanding here -- it's just a name (and not = meant to be a high-level function). I've given it a more = platform-specific name. It is not meant to be a general interface to = which any thing else has to conform. Whether it should use --darwin-sandbox instead of --eval = "(darwin-sandbox '(\"DIR\"))" is not very important at this point. It's = not intended for general use in any case (and the doc strings now make = this clear). In particular, we do not benefit from artificially restricting the macOS = sandboxing until we know what is needed. Nothing like a Lisp interface = for experimentation! > As we gain more experience with these sandboxing mechanisms, we can = look at relaxing these restrictions, but I think initially we should be = conservative. I take the opposite view, but our goals are the same and we will = converge. > Is there any documentation you could refer to, even only an unofficial = one? Well, I dug up some web links that will be gone tomorrow... > This needs to somehow document what PROFILE is. You are right; elaborated. >> +Already open descriptors can be used freely. */) >=20 > What does this mean? Emacs doesn't really expose file descriptors to = users. It sort of does (in the form of processes), but there could also be = descriptors not directly exposed. It would be incomplete not to mention = the possibility. It looks like the seccomp filter generator uses the = same policy, treating descriptors as capabilities. > Missing CHECK_STRING (profile). Thanks! Fixed.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 17:14:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 13:14:30 2021 Received: from localhost ([127.0.0.1]:44430 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXoWb-0005pO-Op for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 13:14:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54650) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1lXoWa-0005pC-5M for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 13:14:28 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:36995) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1lXoWT-0004dT-OV; Sat, 17 Apr 2021 13:14:21 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2768 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1lXoWN-00036e-4Q; Sat, 17 Apr 2021 13:14:16 -0400 Date: Sat, 17 Apr 2021 20:14:03 +0300 Message-Id: <83o8ecvnok.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> In-Reply-To: <jwva6pwalxc.fsf-monnier+emacs@HIDDEN> (message from Stefan Monnier on Sat, 17 Apr 2021 12:58:55 -0400) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <jwva6pwalxc.fsf-monnier+emacs@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefan@HIDDEN, p.stephani2@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > From: Stefan Monnier <monnier@HIDDEN> > Date: Sat, 17 Apr 2021 12:58:55 -0400 > Cc: João Távora <joaotavora@HIDDEN>, > Philipp Stephani <p.stephani2@HIDDEN>, Stefan Kangas <stefan@HIDDEN>, > 45198 <at> debbugs.gnu.org, Alan Third <alan@HIDDEN> > > My primary target is `elisp-flymake--batch-compile-for-flymake`. What does that mean in practice? what does that "target" require?
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 16:59:06 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 12:59:06 2021 Received: from localhost ([127.0.0.1]:44255 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXoHh-0005G4-Kx for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:59:05 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:17908) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1lXoHf-0005FT-IG for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:59:04 -0400 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 0373880967; Sat, 17 Apr 2021 12:58:58 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 8EE3380618; Sat, 17 Apr 2021 12:58:56 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1618678736; bh=hFTscQdOm/n6O+KV9REJfD2Tp+FjpnZoux5UzQ7MocQ=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=KrGs5j0Rq8F1EcRT9vWEpO45A2Hm6vYpNjprhvPmJpYOT4GK6qMe+sdgJdjJ2uYXt FECZYTTgddE525q8Z6mOTsGdNijH7savyfSDcJvsCNPFR5/rSI8nNb2l894h0HgrtR adCwefiIG+EADtbi8W7O2Ca6NMEp1QjB270nA20XkIHTqGWzDuMEhZkW+xhZtJviDC iSXjnAWVl0iqjambNY86WtAg0JITeiDwvKwRDZ5IH3lSNVQU8+ztGMTTVvQUpjzk2Q OyIrtYig6oC06HQRNDi6BHFTbpomdocozj4pzTjCyBvDpPBKQo+vKQG5XTLaOTAHkK hwBtvqsMACqaA== Received: from alfajor (104-222-126-84.cpe.teksavvy.com [104.222.126.84]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 498A012027B; Sat, 17 Apr 2021 12:58:56 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Mattias =?windows-1252?Q?Engdeg=E5rd?= <mattiase@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwva6pwalxc.fsf-monnier+emacs@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> Date: Sat, 17 Apr 2021 12:58:55 -0400 In-Reply-To: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> ("Mattias =?windows-1252?Q?Engdeg=E5rd=22's?= message of "Sat, 17 Apr 2021 17:26:03 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.055 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Philipp Stephani <p.stephani2@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefan@HIDDEN>, Alan Third <alan@HIDDEN>, =?windows-1252?B?Sm/jbyBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > It works and can be pushed right away but it would be nice to have a place > to use it, for validation and for tuning the interface. Any plans for that? My primary target is `elisp-flymake--batch-compile-for-flymake`. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 16:33:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 12:33:29 2021 Received: from localhost ([127.0.0.1]:44234 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXnsv-0004fm-AI for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:33:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:43052) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1lXnsu-0004fb-F1 for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:33:28 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:36226) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1lXnso-00023D-Do; Sat, 17 Apr 2021 12:33:22 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:4186 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1lXnsk-0000zr-7w; Sat, 17 Apr 2021 12:33:21 -0400 Date: Sat, 17 Apr 2021 19:33:05 +0300 Message-Id: <83r1j8vpku.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> In-Reply-To: <CAArVCkQq5Zrdk31wdoDmTSqbEc+aPHdLy8w9ZuZmzQ2t83NSjw@HIDDEN> (message from Philipp Stephani on Sat, 17 Apr 2021 18:20:15 +0200) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <83tuo4vqet.fsf@HIDDEN> <CAArVCkQq5Zrdk31wdoDmTSqbEc+aPHdLy8w9ZuZmzQ2t83NSjw@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefankangas@HIDDEN, joaotavora@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > From: Philipp Stephani <p.stephani2@HIDDEN> > Date: Sat, 17 Apr 2021 18:20:15 +0200 > Cc: Mattias Engdegård <mattiase@HIDDEN>, > João Távora <joaotavora@HIDDEN>, > 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, > Stefan Monnier <monnier@HIDDEN>, Alan Third <alan@HIDDEN> > > That's a fair statement, and I'll try to answer here (and hopefully > later in the other thread as well). The sandbox should be able to > perform operations that are in some sense not security-relevant: > mostly performing computations, reading some necessary files, and > writing some diagnostics to standard output. The initial use case can > be running byte compilation in a Flymake backend. This would allow us > to enable Flymake byte compilation support by default, even on > untrusted code, because due to the sandbox that code could never > perform harmful operations. The Flymake backend would then use the > high-level sandbox functions to asynchronously start byte compilation > in a sandbox. The start-sandbox function in turn would launch an Emacs > subprocess using bwrap or similar to set up appropriate mount > namespaces and apply a Seccomp filter (in the GNU/Linux case). Thanks. I think I understand the general idea, but not how to translate that into real life. "Performing computations" in Emacs corresponds to invoking gobs of system interfaces, and if we are going to filter most of them, I fear we will get a dysfunctional Emacs. E.g., cursor blinking requires accessing the system time, displaying a busy cursor requires interval timers, profiling requires signals, and you cannot do anything in Emacs without being able to allocate memory. If we leave Emacs only with capabilities to read and write to a couple of descriptors, how will the result be useful? Even if Flymake byte compilation can live in such a sandbox (and I'm not yet certain it can), is that the most important situation where untrusted code could be run by Emacs?
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 16:20:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 12:20:35 2021 Received: from localhost ([127.0.0.1]:44225 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXngQ-0004MV-Ls for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:20:34 -0400 Received: from mail-oo1-f43.google.com ([209.85.161.43]:35750) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lXngO-0004MI-AN for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:20:33 -0400 Received: by mail-oo1-f43.google.com with SMTP id i20-20020a4a8d940000b02901bc71746525so6804618ook.2 for <45198 <at> debbugs.gnu.org>; Sat, 17 Apr 2021 09:20:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=95ERRKeJdZdRu4SQoVtuuzPA+A10dOVHsIlSu813uNQ=; b=Br1f1q3mEt0qPl8+bvfxJD+HcYtVkpyQXFOwEc36Nqu6eB2LHg/Brw1Kr0RCViUw1g ztn2zAyiN5RffpNAUntb4w7eXZi3eUHXZdr4s/mUy3vx49w7wrdBpNyb0qy6lrVmDr22 Kjiap1kOR0gjnSMYxRCzfun3WoqdLtoQhyefZbaTLHK1lspc4UZItN0iL7s4LDBDU7VB hoGeH0GLeAMwEjWBEpJisnmynIsARf4xUGO37+P/9rWWXOuwe6gRX37DJP2smR1A4TvF vIJuBCowubU2zs/Och94OMY2EekLQOgIrgQiy3TXShcIcXfxXKGmWNLYN0KcbM+yK4hb DJcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=95ERRKeJdZdRu4SQoVtuuzPA+A10dOVHsIlSu813uNQ=; b=JDeFboXXIKB5AAPkpe6NxBKxaiEZ69XTDbhkQkFL5XKgHbaAEvxWDsEDoiXgN3xx3W p790xtXI81ujhUKZmEomXCQW/qXIWVB9ZXdM83Ujmxiow0bxEis0P6E2hJWHlCjwjbJJ NcuvmlbC8BlU7TCWUKoIiNc9Ezu5NUS2zWRKnzAXJSaHEb5ugzzFGjZO1d2arzcIjx81 Ll7eiFbTfVk/SjbjeTgg6lgWTmQJMIgd/2+XWWm+wzbsJnTmMX80iLpHhKaBN8OmGynL Jotv9EecsX4Ty5YMS0RsToZSy4RnMmt68zhPvETHojmjkDKtjQaZGJCNtComMiylrvDK p4RQ== X-Gm-Message-State: AOAM532uYOO4Eg/CrAeFxhRYdJcXMUHKjLN3JdgWNd5whxxuYqGOVdLx Go3U9c7gNbtRCDeYl4+N0BlWN/Q20e1fd8TY6iI= X-Google-Smtp-Source: ABdhPJwbKsM7xol3fwnphHsNj5Bvs4Fs8pi8p6n+sL3/dAKvLSEdlZh1q12p7dkS34YyfLygkZAKl7aUCf8Ky0/+njA= X-Received: by 2002:a4a:4f53:: with SMTP id c80mr1396067oob.45.1618676426702; Sat, 17 Apr 2021 09:20:26 -0700 (PDT) MIME-Version: 1.0 References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <83tuo4vqet.fsf@HIDDEN> In-Reply-To: <83tuo4vqet.fsf@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sat, 17 Apr 2021 18:20:15 +0200 Message-ID: <CAArVCkQq5Zrdk31wdoDmTSqbEc+aPHdLy8w9ZuZmzQ2t83NSjw@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Eli Zaretskii <eliz@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: Alan Third <alan@HIDDEN>, =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Sa., 17. Apr. 2021 um 18:15 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>: > > > From: Philipp <p.stephani2@HIDDEN> > > Date: Sat, 17 Apr 2021 18:10:14 +0200 > > Cc: mattiase@HIDDEN, > > joaotavora@HIDDEN, > > 45198 <at> debbugs.gnu.org, > > stefankangas@HIDDEN, > > monnier@HIDDEN, > > alan@HIDDEN > > > > > IMO, if we have no reasonably clear idea how this will be used on the > > > high level, > > > > I have a relatively clear idea how I want the high-level interface to l= ook like: > > > > (cl-defun start-sandbox (function &key readable-directories stdout-buff= er) ...) > > (defun wait-for-sandbox (sandbox) ...) > > > > where start-sandbox returns an opaque sandbox object running FUNCTION t= hat wait-for-sandbox can wait for. That should be generic enough that it's= extensible and implementable on several platforms, and doesn't lock us int= o specific implementation choices. > > > > If that's OK with everyone, then I'm happy to write the code for it. > > I'm sorry, but I don't really understand what the above means in > practice. > > What I'm missing is some details about what operations (in Emacs > terms) should not be allowed in the sandbox, and how can users take > advantage of that. I asked more questions about this a few days ago, > but got no responses. I don't really understand how we can > intelligently talk about using this in Emacs while we remain on the > level of file descriptors and syscalls. That's a fair statement, and I'll try to answer here (and hopefully later in the other thread as well). The sandbox should be able to perform operations that are in some sense not security-relevant: mostly performing computations, reading some necessary files, and writing some diagnostics to standard output. The initial use case can be running byte compilation in a Flymake backend. This would allow us to enable Flymake byte compilation support by default, even on untrusted code, because due to the sandbox that code could never perform harmful operations. The Flymake backend would then use the high-level sandbox functions to asynchronously start byte compilation in a sandbox. The start-sandbox function in turn would launch an Emacs subprocess using bwrap or similar to set up appropriate mount namespaces and apply a Seccomp filter (in the GNU/Linux case).
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 16:19:32 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 12:19:32 2021 Received: from localhost ([127.0.0.1]:44220 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXnfQ-0004KX-9u for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:19:32 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41302) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1lXnfP-0004KL-1Y for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:19:31 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:36001) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1lXnfH-0004V9-KR; Sat, 17 Apr 2021 12:19:24 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3190 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1lXnfB-0004ST-14; Sat, 17 Apr 2021 12:19:21 -0400 Date: Sat, 17 Apr 2021 19:19:07 +0300 Message-Id: <83sg3ovq84.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: p.stephani2@HIDDEN In-Reply-To: <83tuo4vqet.fsf@HIDDEN> (message from Eli Zaretskii on Sat, 17 Apr 2021 19:15:06 +0300) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> <83tuo4vqet.fsf@HIDDEN> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefankangas@HIDDEN, joaotavora@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > Date: Sat, 17 Apr 2021 19:15:06 +0300 > From: Eli Zaretskii <eliz@HIDDEN> > Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, > stefankangas@HIDDEN, joaotavora@HIDDEN, monnier@HIDDEN > > What I'm missing is some details about what operations (in Emacs > terms) should not be allowed in the sandbox, and how can users take > advantage of that. I asked more questions about this a few days ago, > but got no responses. I don't really understand how we can > intelligently talk about using this in Emacs while we remain on the > level of file descriptors and syscalls. Btw, please don't interpret the above as pressure to get these issues discussed and figured out. There's no pressure; all I'm saying is that if this is preliminary code for which we don't yet have a clear common idea about its practical usage, it should be on a branch.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 16:15:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 12:15:30 2021 Received: from localhost ([127.0.0.1]:44207 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXnbW-0004E4-7N for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:15:30 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40864) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1lXnbU-0004Dp-8V for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:15:28 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:35935) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1lXnbN-0002lg-Ee; Sat, 17 Apr 2021 12:15:22 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2946 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1lXnbL-0004Am-H4; Sat, 17 Apr 2021 12:15:20 -0400 Date: Sat, 17 Apr 2021 19:15:06 +0300 Message-Id: <83tuo4vqet.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Philipp <p.stephani2@HIDDEN> In-Reply-To: <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> (message from Philipp on Sat, 17 Apr 2021 18:10:14 +0200) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefankangas@HIDDEN, joaotavora@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > From: Philipp <p.stephani2@HIDDEN> > Date: Sat, 17 Apr 2021 18:10:14 +0200 > Cc: mattiase@HIDDEN, > joaotavora@HIDDEN, > 45198 <at> debbugs.gnu.org, > stefankangas@HIDDEN, > monnier@HIDDEN, > alan@HIDDEN > > > IMO, if we have no reasonably clear idea how this will be used on the > > high level, > > I have a relatively clear idea how I want the high-level interface to look like: > > (cl-defun start-sandbox (function &key readable-directories stdout-buffer) ...) > (defun wait-for-sandbox (sandbox) ...) > > where start-sandbox returns an opaque sandbox object running FUNCTION that wait-for-sandbox can wait for. That should be generic enough that it's extensible and implementable on several platforms, and doesn't lock us into specific implementation choices. > > If that's OK with everyone, then I'm happy to write the code for it. I'm sorry, but I don't really understand what the above means in practice. What I'm missing is some details about what operations (in Emacs terms) should not be allowed in the sandbox, and how can users take advantage of that. I asked more questions about this a few days ago, but got no responses. I don't really understand how we can intelligently talk about using this in Emacs while we remain on the level of file descriptors and syscalls.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 16:10:23 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 12:10:23 2021 Received: from localhost ([127.0.0.1]:44197 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXnWZ-000467-83 for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:10:23 -0400 Received: from mail-ej1-f47.google.com ([209.85.218.47]:33280) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lXnWY-00045r-1j for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 12:10:22 -0400 Received: by mail-ej1-f47.google.com with SMTP id g5so39776288ejx.0 for <45198 <at> debbugs.gnu.org>; Sat, 17 Apr 2021 09:10:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=P1ViWqoAyC6pIhsid45kN/g90qsav9nCKWQDtKu4P5g=; b=RdKkaPoHVkcaOC+XHyj1dqLFfptghTNJvnKcvtlRTRVIfXklR/cRClA3Bxy3VCU6Zn 6TS6H9jUM4Ek3GHoagHpJO2t8OKyFJTqitC23fI3pKgySD//nWQROxd/05diepMPLNTw Hz1/rEwk72yROVNBGYxGOtyqX2x81d//pdIkGwxpdcoEg9xQS7382YyAbEx5OznlWyw0 cwqShaT7wTFD8qOUBeQbhmEopXgLL19gk8WmBKzDRvMHAkij6pMoYtrDQR7uDme1H1bR mYh6+EsOZdH5It/30sssC7xhIb5EkCEnkB8UfcrumjuUWQ1GjrmiJedhegog1YTfBwFN foYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=P1ViWqoAyC6pIhsid45kN/g90qsav9nCKWQDtKu4P5g=; b=k/nFR9xmc6lIPg+BZ1M6m8HRpsoEMA4UrH7Ck+OAGm7/WxtfAprJZET6oI2ItWcheJ 1w5U/ze1Reg2sjlP8u/IjfzK89GQ6w5SZH3oZ3mXJjG8X2bjQvqL1FPVCFbMjuiulD5I JWEd2u+7gRv264OOQlEOFeZmQw6Wakz4W6wbyoTYWX+L8r0YrUwxsFMOTuPqp2zXC3w2 pJedHB1br5OXYulnovsWpn6CPlIy2/7Mugjn1jHvbecIdnJ//48/U7rx3cHP5ukxIckB d4tNrELsO3FHg2YsZjOufRYGm0/d4HlKme1IqoCRmcT1Q1p48YtkIEFeYaj1uEESk70L P1ag== X-Gm-Message-State: AOAM531+HNQ4fUoEW55U+IGQ9lUL6TGmxUispx/W2N9qaRmMGn89FnAO +cad1v8Tjel9s3hodScaSx8= X-Google-Smtp-Source: ABdhPJyhzNyOJJgrkob1nfQki3+vm1pN7YwBvXnOcnDej3J0YS03pKPrx+cmRNhUeDlFkXLJadHx5g== X-Received: by 2002:a17:907:62a7:: with SMTP id nd39mr13870441ejc.510.1618675816178; Sat, 17 Apr 2021 09:10:16 -0700 (PDT) Received: from philipps-macbook-pro.fritz.box (p57aafcaa.dip0.t-ipconnect.de. [87.170.252.170]) by smtp.gmail.com with ESMTPSA id ws15sm6665316ejb.38.2021.04.17.09.10.14 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Apr 2021 09:10:15 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: Philipp <p.stephani2@HIDDEN> In-Reply-To: <83v98kvr7y.fsf@HIDDEN> Date: Sat, 17 Apr 2021 18:10:14 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <9A5BCDF3-6543-46C0-AB56-2311392FC549@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> <83v98kvr7y.fsf@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> X-Mailer: Apple Mail (2.3654.60.0.2.21) X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefankangas@HIDDEN, joaotavora@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) > Am 17.04.2021 um 17:57 schrieb Eli Zaretskii <eliz@HIDDEN>: >=20 >> From: Philipp <p.stephani2@HIDDEN> >> Date: Sat, 17 Apr 2021 17:44:06 +0200 >> Cc: Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN>, >> 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, >> Stefan Monnier <monnier@HIDDEN>, Alan Third = <alan@HIDDEN> >>=20 >>> It works and can be pushed right away but it would be nice to have a = place to use it, for validation and for tuning the interface. Any plans = for that? >>>=20 >>=20 >> I think it would be better to first implement the mechanism and not = the high-level `sandbox-enter' function (I think that one needs a bit = more discussion), and implement the mechanism as a command-line flag. >=20 > IMO, if we have no reasonably clear idea how this will be used on the > high level, I have a relatively clear idea how I want the high-level interface to = look like: (cl-defun start-sandbox (function &key readable-directories = stdout-buffer) ...) (defun wait-for-sandbox (sandbox) ...) where start-sandbox returns an opaque sandbox object running FUNCTION = that wait-for-sandbox can wait for. That should be generic enough that = it's extensible and implementable on several platforms, and doesn't lock = us into specific implementation choices. If that's OK with everyone, then I'm happy to write the code for it.=
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 15:57:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 11:57:57 2021 Received: from localhost ([127.0.0.1]:44189 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXnKW-0003nE-NT for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 11:57:56 -0400 Received: from eggs.gnu.org ([209.51.188.92]:38542) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1lXnKV-0003n2-7w for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 11:57:55 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:35480) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1lXnKO-0002jU-He; Sat, 17 Apr 2021 11:57:48 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1862 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1lXnKM-00009G-Jc; Sat, 17 Apr 2021 11:57:48 -0400 Date: Sat, 17 Apr 2021 18:57:37 +0300 Message-Id: <83v98kvr7y.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Philipp <p.stephani2@HIDDEN> In-Reply-To: <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> (message from Philipp on Sat, 17 Apr 2021 17:44:06 +0200) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: alan@HIDDEN, mattiase@HIDDEN, 45198 <at> debbugs.gnu.org, stefankangas@HIDDEN, joaotavora@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > From: Philipp <p.stephani2@HIDDEN> > Date: Sat, 17 Apr 2021 17:44:06 +0200 > Cc: João Távora <joaotavora@HIDDEN>, > 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, > Stefan Monnier <monnier@HIDDEN>, Alan Third <alan@HIDDEN> > > > It works and can be pushed right away but it would be nice to have a place to use it, for validation and for tuning the interface. Any plans for that? > > > > I think it would be better to first implement the mechanism and not the high-level `sandbox-enter' function (I think that one needs a bit more discussion), and implement the mechanism as a command-line flag. IMO, if we have no reasonably clear idea how this will be used on the high level, it might make sense to move this to a feature branch, instead of working on master. That's because without a high-level view, there's no way people could try implementing the same functionality on platforms other than GNU/Linux, let alone use it. So from my POV, at this point this is just an experiment, and we have feature branches for that.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 15:44:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 11:44:17 2021 Received: from localhost ([127.0.0.1]:44178 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXn7I-0003U2-Lj for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 11:44:16 -0400 Received: from mail-ej1-f51.google.com ([209.85.218.51]:38472) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lXn7G-0003To-HZ for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 11:44:15 -0400 Received: by mail-ej1-f51.google.com with SMTP id r12so46446004ejr.5 for <45198 <at> debbugs.gnu.org>; Sat, 17 Apr 2021 08:44:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=c3Ww/tmyGygJ2uwXpdP8pZrpQCLs04DA9W2NNRdfKuY=; b=pyvjne2i6d5nZxrxw8jHves53sGgYKtbcrIfu59zx07AuYvkOVrmUr62aty5Hr06fy JDXa0xKL2ZL8Q2WFIhhJOnjf8X72baHL8DTlBjIotqYxeaLHPjOH5NcsbsR+IMqhO8Ps thWOcel0wmO1k9mtIM3rYXsydiXszudksLHOjsh+dSLtXbTYAZkFA31QLGUh+zPsp0/W +v+BGy3i8FMuRL3mBFn75cPD6NdXb8Y15rwwHXce7QjYjTP2bX9mwDtbij0MzBc+6+Uj VD4eBhZKfLmoZRn3Awf3oKnaCR8RVMm0ovJ4unImMpi+5XhA974Uu7323SLFvffWUtFZ fdVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=c3Ww/tmyGygJ2uwXpdP8pZrpQCLs04DA9W2NNRdfKuY=; b=n4Cl7mFSN7KEsBbqdr52xkeJ3sXzrzuM7qdIVeG/vPNjVI745ZLkJy+EVYOzgkxWG1 RVaZOOoZ+gT9xAm5Hb4k50sK+pdzNYmE6EzIWXWQ+rvE/KKa+lLTSAj5iv/qbrlrXsRm QU5hXSKEbhj9z8n2i81Syx25uuIVqJWoe7hzKlIIPi2O9d7cjFi9ZRnfVn9Sk6wNmAYD Nt+R+ZHucyu4I+rDiXV1WBqBgt5FYdcvtdltvLcvVpg1+cWf4Lei+f1J918Uin/Uco0/ GUyb5iLo1y3W+LAeEbqLtYg/Nrx6u8fX6oJD86t5tbs+7S0O3AcXwQudf9efuKq/OCPg 8Vkg== X-Gm-Message-State: AOAM533Rw32m9I9PwKd8BO9F2xgF0wpb71+tNfu3qdQG43tQqsbDIPfk 2xArah5SvzAt2MPfj4B6tXs= X-Google-Smtp-Source: ABdhPJzImxuix42EFMXBDjy9Q1imikc4ZWljD/St07SbZgqxSO1UTt78vI6a44JyqWNrTkOueMHKKA== X-Received: by 2002:a17:906:c30d:: with SMTP id s13mr13739882ejz.68.1618674248617; Sat, 17 Apr 2021 08:44:08 -0700 (PDT) Received: from philipps-macbook-pro.fritz.box (p57aafcaa.dip0.t-ipconnect.de. [87.170.252.170]) by smtp.gmail.com with ESMTPSA id d24sm859759ejd.57.2021.04.17.08.44.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Apr 2021 08:44:08 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: Philipp <p.stephani2@HIDDEN> In-Reply-To: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> Date: Sat, 17 Apr 2021 17:44:06 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <19511709-E42B-4ABD-9823-39EA08A79B1F@HIDDEN> References: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> To: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> X-Mailer: Apple Mail (2.3654.60.0.2.21) X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, Alan Third <alan@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) > Am 17.04.2021 um 17:26 schrieb Mattias Engdeg=C3=A5rd = <mattiase@HIDDEN>: >=20 > Slightly updated patch for macOS. Obviously not nearly as fancy as the = seccomp one but for running something in batch mode that reads from = files and writes to stdout/stderr it should do. >=20 > It works and can be pushed right away but it would be nice to have a = place to use it, for validation and for tuning the interface. Any plans = for that? >=20 I think it would be better to first implement the mechanism and not the = high-level `sandbox-enter' function (I think that one needs a bit more = discussion), and implement the mechanism as a command-line flag. This = would not only be consistent with the Seccomp implementation, but also = be somewhat more conservative in that it wouldn't require the sandboxing = functionality to work in arbitrary running Emacs processes. As we gain = more experience with these sandboxing mechanisms, we can look at = relaxing these restrictions, but I think initially we should be = conservative. > diff --git a/lisp/subr.el b/lisp/subr.el > index c2be26a15f..4994771c33 100644 > --- a/lisp/subr.el > +++ b/lisp/subr.el > @@ -6262,4 +6262,20 @@ internal--format-docstring-line > This is intended for internal use only." > (internal--fill-string-single-line (apply #'format string = objects))) > =20 > +(when (eq system-type 'darwin) > + (defun sandbox-enter (dirs) > + "Enter a sandbox only permitting reading files under DIRS. > +DIRS is a list of directory names. Most other operations such as > +writing files and network access are disallowed. > +Existing open descriptors can still be used freely." > + (darwin-sandbox-init > + (concat "(version 1)\n" > + "(deny default)\n" > + ;; Emacs seems to need /dev/null; allowing it does no = harm. > + "(allow file-read* (path \"/dev/null\"))\n" > + (mapconcat (lambda (dir) > + (format "(allow file-read* (subpath %S))\n" = dir)) > + dirs "")))) > + ) > + > ;;; subr.el ends here I think it would be better to not commit to a high-level interface like = `sandbox-enter' yet. I intentionally held off adding such an interface = in my patch because I think it deserves more discussion about the right = design and interface. > diff --git a/src/sysdep.c b/src/sysdep.c > index d940acc4e0..b6c402ba33 100644 > --- a/src/sysdep.c > +++ b/src/sysdep.c > @@ -4286,8 +4286,33 @@ str_collate (Lisp_Object s1, Lisp_Object s2, > } > #endif /* WINDOWSNT */ > =20 > +#ifdef DARWIN_OS > + > +/* This function prototype is not in the platform header files. */ Is there any documentation you could refer to, even only an unofficial = one? > +int sandbox_init_with_parameters(const char *profile, > + uint64_t flags, > + const char *const parameters[], > + char **errorbuf); > + > +DEFUN ("darwin-sandbox-init", Fdarwin_sandbox_init, = Sdarwin_sandbox_init, > + 1, 1, 0, > + doc: /* Enter a sandbox whose permitted access is curtailed by = PROFILE. I think it would be better to define this as command-line flag, at least = initially. That way, the sandbox can protect code that happens early = on, e.g. the startup code. This needs to somehow document what PROFILE is. > +Already open descriptors can be used freely. */) What does this mean? Emacs doesn't really expose file descriptors to = users. > + (Lisp_Object profile) > +{ > + char *err =3D NULL; > + if (sandbox_init_with_parameters (SSDATA (profile), 0, NULL, &err) = !=3D 0) Missing CHECK_STRING (profile).
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Apr 2021 15:26:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 11:26:11 2021 Received: from localhost ([127.0.0.1]:44166 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lXmpn-000342-FG for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 11:26:11 -0400 Received: from mail235c50.megamailservers.eu ([91.136.10.245]:34146 helo=mail56c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1lXmpl-00033t-9Z for 45198 <at> debbugs.gnu.org; Sat, 17 Apr 2021 11:26:10 -0400 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1618673167; bh=E2VpJKBV344x9O4rNkAJi+JoCk2eganvHNpC15QtSCE=; h=From:Subject:Date:Cc:To:From; b=b2KB5S1cdvRA1opZnAQIpClKkORsnppAnkcLSnFw5w9fonDdGLj+N7RVBGmkNxWdS 2/2cEhL0dF1zCHHsfU4V7qLvCIzwhgnvO/aOoQhhCvs8G/xIo+egw/ECg1X8loD+YO tQbha+X2OYLUtumXogYMl02VoNakHsBOK2htSVhw= Feedback-ID: mattiase@HIDDEN Received: from stanniol.lan (c-b952e353.032-75-73746f71.bbcust.telenor.se [83.227.82.185]) (authenticated bits=0) by mail56c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 13HFQ4DW025686; Sat, 17 Apr 2021 15:26:06 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: multipart/mixed; boundary="Apple-Mail=_2C9CC654-4040-4DAC-ADF8-2E07608D9C8C" Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-Id: <5818DFAA-3A9C-4335-BAAF-1227A02C290A@HIDDEN> Date: Sat, 17 Apr 2021 17:26:03 +0200 To: 45198 <at> debbugs.gnu.org X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A742F15.607AFE0F.0039, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=FblJO626 c=1 sm=1 tr=0 a=von4qPfY+hyqc0zmWf0tYQ==:117 a=von4qPfY+hyqc0zmWf0tYQ==:17 a=M51BFTxLslgA:10 a=xcPf1q-u3qo2JXHEquoA:9 a=CjuIK1q_8ugA:10 a=1P0XLz_2t6KZdAnhmMkA:9 a=De_Ol2h6w80A:10 a=pHzHmUro8NiASowvMSCR:22 a=Ew2E2A-JSTLzCXPT_086:22 X-Origin-Country: SE X-Spam-Score: 4.7 (++++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Slightly updated patch for macOS. Obviously not nearly as fancy as the seccomp one but for running something in batch mode that reads from files and writes to stdout/stderr it should do. It works and can be pushed right away but it would be nice to have a place to use it, for validation and for tuning the interface. Any plans for that? Content analysis details: (4.7 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 3.3 FAKE_REPLY_B No description available. 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 45198 Cc: Alan Third <alan@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>, Philipp Stephani <p.stephani2@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 3.3 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Slightly updated patch for macOS. Obviously not nearly as fancy as the seccomp one but for running something in batch mode that reads from files and writes to stdout/stderr it should do. It works and can be pushed right away but it would be nice to have a place to use it, for validation and for tuning the interface. Any plans for that? Content analysis details: (3.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 3.3 FAKE_REPLY_B No description available. --Apple-Mail=_2C9CC654-4040-4DAC-ADF8-2E07608D9C8C Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Slightly updated patch for macOS. Obviously not nearly as fancy as the = seccomp one but for running something in batch mode that reads from = files and writes to stdout/stderr it should do. It works and can be pushed right away but it would be nice to have a = place to use it, for validation and for tuning the interface. Any plans = for that? --Apple-Mail=_2C9CC654-4040-4DAC-ADF8-2E07608D9C8C Content-Disposition: attachment; filename=darwin-sandbox.diff Content-Type: application/octet-stream; x-unix-mode=0644; name="darwin-sandbox.diff" Content-Transfer-Encoding: 7bit diff --git a/lisp/subr.el b/lisp/subr.el index c2be26a15f..4994771c33 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -6262,4 +6262,20 @@ internal--format-docstring-line This is intended for internal use only." (internal--fill-string-single-line (apply #'format string objects))) +(when (eq system-type 'darwin) + (defun sandbox-enter (dirs) + "Enter a sandbox only permitting reading files under DIRS. +DIRS is a list of directory names. Most other operations such as +writing files and network access are disallowed. +Existing open descriptors can still be used freely." + (darwin-sandbox-init + (concat "(version 1)\n" + "(deny default)\n" + ;; Emacs seems to need /dev/null; allowing it does no harm. + "(allow file-read* (path \"/dev/null\"))\n" + (mapconcat (lambda (dir) + (format "(allow file-read* (subpath %S))\n" dir)) + dirs "")))) + ) + ;;; subr.el ends here diff --git a/src/sysdep.c b/src/sysdep.c index d940acc4e0..b6c402ba33 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -4286,8 +4286,33 @@ str_collate (Lisp_Object s1, Lisp_Object s2, } #endif /* WINDOWSNT */ +#ifdef DARWIN_OS + +/* This function prototype is not in the platform header files. */ +int sandbox_init_with_parameters(const char *profile, + uint64_t flags, + const char *const parameters[], + char **errorbuf); + +DEFUN ("darwin-sandbox-init", Fdarwin_sandbox_init, Sdarwin_sandbox_init, + 1, 1, 0, + doc: /* Enter a sandbox whose permitted access is curtailed by PROFILE. +Already open descriptors can be used freely. */) + (Lisp_Object profile) +{ + char *err = NULL; + if (sandbox_init_with_parameters (SSDATA (profile), 0, NULL, &err) != 0) + error ("sandbox error: %s", err); + return Qnil; +} + +#endif /* DARWIN_OS */ + void syms_of_sysdep (void) { defsubr (&Sget_internal_run_time); +#ifdef DARWIN_OS + defsubr (&Sdarwin_sandbox_init); +#endif } diff --git a/test/src/emacs-tests.el b/test/src/emacs-tests.el index 09f9a248ef..a1dc7f3501 100644 --- a/test/src/emacs-tests.el +++ b/test/src/emacs-tests.el @@ -210,4 +210,74 @@ emacs-tests/bwrap/allows-stdout (should (eql status 0))) (should (equal (string-trim (buffer-string)) "Hi")))))) +(defun emacs-tests--darwin-run-sandboxed-emacs (sandbox-dirs body) + "Run Emacs and evaluate BODY, only allowing reads from SANDBOX-DIRS. +If SANDBOX-DIRS is `no-sandbox', then run without sandbox. +Return (EXIT-STATUS . OUTPUT), where OUTPUT is stderr and stdout." + (let ((emacs (expand-file-name invocation-name invocation-directory)) + (process-environment nil)) + (with-temp-buffer + (let* ((prog `(progn + ,@(and (not (eq sandbox-dirs 'no-sandbox)) + `((sandbox-enter ',sandbox-dirs))) + ,@body)) + (res (call-process emacs nil t nil + "--quick" "--batch" + (format "--eval=%S" prog)))) + (cons res (buffer-string)))))) + +(ert-deftest emacs-tests/darwin-sandbox () + (skip-unless (eq system-type 'darwin)) + (emacs-tests--with-temp-file test-file ("test") + (let ((some-text "abcdef") + (other-text "ghijkl") + (test-file (file-truename test-file))) ; resolve symlinks + (with-temp-buffer + (insert some-text) + (write-file test-file)) + + ;; Read the file without allowing its directory -- should fail. + (let ((res-out (emacs-tests--darwin-run-sandboxed-emacs + nil + `((find-file-literally ,test-file) + (message "OK: %s" (buffer-string)))))) + (ert-info ((cdr res-out) :prefix "output: ") + (should-not (equal (car res-out) 0)) + (should-not (string-search some-text (cdr res-out))))) + + ;; Read the file allowing its directory -- should succeed. + (let ((res-out (emacs-tests--darwin-run-sandboxed-emacs + (list (file-name-directory test-file)) + `((find-file-literally ,test-file) + (message "OK: %s" (buffer-string)))))) + (should (equal res-out (cons 0 (format "OK: %s\n" some-text))))) + + ;; Write to the file allowing directory reads -- should fail. + (let ((res-out (emacs-tests--darwin-run-sandboxed-emacs + (list (file-name-directory test-file)) + `((with-temp-buffer + (insert ,other-text) + (write-file ,test-file)))))) + (ert-info ((cdr res-out) :prefix "output: ") + (should-not (equal (car res-out) 0)) + ;; The file should be unchanged. + (let ((contents (with-temp-buffer + (insert-file-literally test-file) + (buffer-string)))) + (should (equal contents some-text))))) + + ;; Write to the file without sandbox -- should succeed. + (let ((res-out (emacs-tests--darwin-run-sandboxed-emacs + 'no-sandbox + `((with-temp-buffer + (insert ,other-text) + (write-file ,test-file)))))) + (ert-info ((cdr res-out) :prefix "output: ") + (should (equal (car res-out) 0)) + ;; The file should be changed. + (let ((contents (with-temp-buffer + (insert-file-literally test-file) + (buffer-string)))) + (should (equal contents other-text)))))))) + ;;; emacs-tests.el ends here --Apple-Mail=_2C9CC654-4040-4DAC-ADF8-2E07608D9C8C--
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 10 Apr 2021 19:11:24 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 10 15:11:24 2021 Received: from localhost ([127.0.0.1]:53305 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lVJ0t-0004VC-S0 for submit <at> debbugs.gnu.org; Sat, 10 Apr 2021 15:11:24 -0400 Received: from mail-ot1-f54.google.com ([209.85.210.54]:34458) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lVJ0s-0004V0-04 for 45198 <at> debbugs.gnu.org; Sat, 10 Apr 2021 15:11:22 -0400 Received: by mail-ot1-f54.google.com with SMTP id k14-20020a9d7dce0000b02901b866632f29so8973538otn.1 for <45198 <at> debbugs.gnu.org>; Sat, 10 Apr 2021 12:11:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=ruJ4QHLp7a4fFzpbcBhKo12EM0invYehhtFqJ962ZNU=; b=Diro42WXgwvZyguRopRAkza1JcP/vJ3PvPYGoOgvIgE7+KuTeGKxz9EcQ1fPeUGNwK Rb5F11FsvKeLO593ZeOoK96w2C2NXN9V+qVKl10uoK3lQSl+mCSF5jW6Dda6znu3fWnb 51jyo9mHV76JZJun8o4yBN2FL78VPckZHnU0zE33/9PJ2Hqg6vqqpX+6wwDCGW3vnLLZ PD9ml9yE0fKKpAeEVVKtlU+Rwt2unkPnYjek0op4k2aupnEsg/yLJcgHlWNmPYLEu0lQ IIENSsa9VK5zJpiEoZlMFiZO9Bpo9T4fTjRbhmP6GlYG1WEt1PckujKnoNoQ++NTWraG F0Lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=ruJ4QHLp7a4fFzpbcBhKo12EM0invYehhtFqJ962ZNU=; b=c5feQtevCtwhv0l3Oet4nzDCjhvnN30XnzcqX1pOYYmoft5yoQ87XEq/rWrZ7F2gD/ Fo83d7cmaX3WetFGVLwuSuzXFoV03FuIbCKtfY4mmYnxqiUL+IAgD6GTg7PwX7oxvDTv o8Q2vHGwZ9+TLpoYN+aJyOdpembS64Ax4jBMWtNJoMa0VANwVsJHncV2zQNLNZBygqOl rARFveKCUSBYhFI8/sHACWFmdf9QC1vgCuWq7vhnQ/ufLRHMRrl6KE8/ceBcKQfyLvlu txorQYYN+WOGbF4X2vmhLPhh3u/YlWJaa3V4VX93bLCJVwZm1d6Q34UHMzlBuee0j/YV ChdQ== X-Gm-Message-State: AOAM530/si1DkVjtPtM6JWNCyJjw//Ht6JDlWdFQtlKbtGQVIkcgkSM5 msD6n7DTV3GLs0zV5I9YRhGA8N15XXH3u29XiD4= X-Google-Smtp-Source: ABdhPJxHt1PS64c9BsBeZHyB0TaQfsMWpV9KwC1XqSU9yrgPHYKaOELWuZIYuT8txkwAER6Bk1GKo43UuTWqW1opx4g= X-Received: by 2002:a05:6830:4121:: with SMTP id w33mr16993553ott.153.1618081876336; Sat, 10 Apr 2021 12:11:16 -0700 (PDT) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> In-Reply-To: <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sat, 10 Apr 2021 21:11:04 +0200 Message-ID: <CAArVCkRerqZtmDsBAYNA-92tY7qGOmBwMy85YqTj=iAuoVNv2g@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Sa., 19. Dez. 2020 um 23:22 Uhr schrieb Philipp Stephani <p.stephani2@HIDDEN>: > > Am Mo., 14. Dez. 2020 um 12:05 Uhr schrieb Philipp Stephani > <p.stephani2@HIDDEN>: > > > > >> - This will need someone else doing the implementation. > > > > Looks like we already have a volunteer for macOS. > > > > For Linux, this shouldn't be that difficult either. The sandbox nee= ds > > > > to install a mount namespace that only allows read access to Emacs'= s > > > > installation directory plus any input file and write access to know= n > > > > output files, and enable syscall filters that forbid everything exc= ept > > > > a list of known-safe syscalls (especially exec). I can take a stab = at > > > > that, but I can't promise anything ;-) > > > > > > Looking forward to it. > > > > > > > I've looked into this, and what I'd suggest for now is: > > [=E2=80=A6] > > 2. Generate appropriate seccomp filters using libseccomp or similar. > > Here's a patch for this step. I've now pushed a variant of this patch as commit 1060289f51ee1bf269bb45940892eb272d35af97, after verifying that it doesn't break the macOS or Windows builds.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 10 Apr 2021 17:45:04 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 10 13:45:04 2021 Received: from localhost ([127.0.0.1]:53204 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lVHfL-0006Yi-Vk for submit <at> debbugs.gnu.org; Sat, 10 Apr 2021 13:45:04 -0400 Received: from mail-oi1-f171.google.com ([209.85.167.171]:43734) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1lVHfK-0006Xy-Rv for 45198 <at> debbugs.gnu.org; Sat, 10 Apr 2021 13:45:03 -0400 Received: by mail-oi1-f171.google.com with SMTP id n8so9193401oie.10 for <45198 <at> debbugs.gnu.org>; Sat, 10 Apr 2021 10:45:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gwxecy6Vc1oV3tC5nx3nBkQyxqUlHkbFxif2f4PlapE=; b=i0S0rH08oyPX76sH5jm2o9IeZTI+fWUoOzYIm9WnXsN9IywlPu1gaLpHP4YZK9X5B8 pQwrF6DdyDvSqdw1v1zUnR8reiWgsMuW1mlPjzjBt6CfReS6np3AL/xvlme66sKWYlSL Kga3yPWwNvSjaHb3xc1by1VQ6oryDVhxkTgoUje6nJfkU+WHI/1iJ+Gz58aO2di2KmOj ZKVJIdpue5O+rqpvnIdgdou8pNdmvcBJOYMyAILCNPBUzp83aIPL/3fPqGC0k9lPaKCB fTzicVFopMxpSUBSB25wZ17qA431btpr/+B7A0Td380alKG8YzmQGSbsbS5fghm40Lps x4mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gwxecy6Vc1oV3tC5nx3nBkQyxqUlHkbFxif2f4PlapE=; b=S+elxG/qh/6rlBsG+zO+Q3ezbm5fhy2KxFofcb22AHBTwiOtU126JBv30bdI25eda5 nWCNJxYAthwEENPVvZ2pAIV6bc6dY7hpaJWOGTcyEzB/uG8I0VRWs2EwDMfzWqejBntH wZpXwyOKW+oZWpa/kG3G7QOwhulxDM33pokDzXb8irPoUSR0Wt0vsJSkkWEsOD+kJP9h JQHuTdhtxFka1JrkCRNcDVUcQu4n8Tz0pn+dj0CB0p8tuzS6zwkuvLPxNSNOQ/2Inflk IatTZZqmYE9e4mIiNCOBgC2jqcf7TmuSBh6zDKgvjPIJhc9TyVW/WHqgY7mV6BODC15U uf5A== X-Gm-Message-State: AOAM533p3hb+9ABOo4PfOYcQ2L9FKS+7SP9xMVy0+tn0DLIy44ZsKYYi AFYXirVOGB0WyIK0K2IbtbLYN1vwAVcDp7zgjZQ= X-Google-Smtp-Source: ABdhPJzPH7i3d6HBYblyZaAh86E8cs2GaqjXpUlGzpJMPy8HQZaTUx6/KVh3DuZVvmZ0JgCBF1rPBDqsQVq0ECP4JlQ= X-Received: by 2002:aca:6543:: with SMTP id j3mr14327382oiw.158.1618076697017; Sat, 10 Apr 2021 10:44:57 -0700 (PDT) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkSiTR6UBT3AcKYOe3Yr8TgizjVBOobF_PDv0JNUySj2CA@HIDDEN> In-Reply-To: <CAArVCkSiTR6UBT3AcKYOe3Yr8TgizjVBOobF_PDv0JNUySj2CA@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sat, 10 Apr 2021 19:44:45 +0200 Message-ID: <CAArVCkRDhDNUhivOeJLSP0pH8JF8S830-1Hm2C3G8Dwcjjz0-g@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am Sa., 19. Dez. 2020 um 19:18 Uhr schrieb Philipp Stephani <p.stephani2@HIDDEN>: > > Am Mo., 14. Dez. 2020 um 12:05 Uhr schrieb Philipp Stephani > <p.stephani2@HIDDEN>: > > > > > >> - This will need someone else doing the implementation. > > > > Looks like we already have a volunteer for macOS. > > > > For Linux, this shouldn't be that difficult either. The sandbox needs > > > > to install a mount namespace that only allows read access to Emacs's > > > > installation directory plus any input file and write access to known > > > > output files, and enable syscall filters that forbid everything except > > > > a list of known-safe syscalls (especially exec). I can take a stab at > > > > that, but I can't promise anything ;-) > > > > > > Looking forward to it. > > > > > > > I've looked into this, and what I'd suggest for now is: > > 1. Add a --seccomp=FILE command-line option that loads seccomp filters > > from FILE and applies them directly after startup (first thing in > > main). Why do this in Emacs? Because that's the easiest way to prevent > > execve. When installing a seccomp filter in a separate process, execve > > needs to be allowed because otherwise there'd be no way to execute the > > Emacs binary. While there are workarounds (ptrace, LD_PRELOAD), it's > > easiest to install the seccomp filter directly in the Emacs process. > > I've attached a patch for this. I've verified that a slight variant of this patch doesn't break either the Windows or macOS builds, and pushed it to master as commit be8328acf9aa464f848e682e63e417a18529af9e.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 31 Dec 2020 16:50:40 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 31 11:50:39 2020 Received: from localhost ([127.0.0.1]:41472 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kv19r-0002Rp-Ji for submit <at> debbugs.gnu.org; Thu, 31 Dec 2020 11:50:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46882) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1kv19q-0002Rc-Qg for 45198 <at> debbugs.gnu.org; Thu, 31 Dec 2020 11:50:39 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52260) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1kv19j-0005E6-JV; Thu, 31 Dec 2020 11:50:33 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3077 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1kv19i-00023j-9p; Thu, 31 Dec 2020 11:50:31 -0500 Date: Thu, 31 Dec 2020 18:50:07 +0200 Message-Id: <83im8hhqdc.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> In-Reply-To: <CAArVCkT=PmqsBjREFfcrVHRAXjtjfVvTH4uvL9_pARvor4pgQQ@HIDDEN> (message from Philipp Stephani on Thu, 31 Dec 2020 16:05:52 +0100) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> <CAArVCkR=BwguqGBQFO5pjYJZOmHTX-RJGKmUL9Bon-F1fUNSWQ@HIDDEN> <838s9gk476.fsf@HIDDEN> <CAArVCkQAHJCv7ZQfytsrZqBg4Dn0tBsCcjWcpkjkpCzH3CCMrw@HIDDEN> <834kk4k090.fsf@HIDDEN> <CAArVCkT=PmqsBjREFfcrVHRAXjtjfVvTH4uvL9_pARvor4pgQQ@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: bzg@HIDDEN, 45198 <at> debbugs.gnu.org, monnier@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Philipp Stephani <p.stephani2@HIDDEN> > Date: Thu, 31 Dec 2020 16:05:52 +0100 > Cc: Stefan Monnier <monnier@HIDDEN>, Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, > João Távora <joaotavora@HIDDEN> > > Am Di., 29. Dez. 2020 um 18:09 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>: > > > > Because some/many Gnulib replacements are incompatible with how the > > w32 port of Emacs works. In particular, functions which operate on > > file names don't support UTF-8 encoded file names; Gnulib's 'stat' and > > 'fstat' don't support security-related features from which we glean > > owner and group of files; network-related functions need special > > handling in Emacs to support subprocess functionality; etc. > > That's a fair point, but does the mere presence of these replacements > really break the build? If the function compiles cleanly and is not used on MS-Windows, then no, the build won't break. > Could we somehow make them not break the build? It's not up to us, because we don't maintain Gnulib code. And it isn't always practical, since the Windows port of Emacs has its own replacements for some Posix functionality that conflict with the Gnulib replacements. > > I know; I wrote that. However, this talks about code that will be > > actually _used_ in the Windows build, whereas here we are talking > > about "ballast": the related code will not be used at all. So it > > makes sense not to make our job harder by adding unnecessary code, > > which then will need to be audited for compatibility. Your Gnulib > > import adds quite a lot of modules, which makes the audit a large job. > > Independent of this discussion, are there ways to reduce the size of > the auditing job? I'd hope that eventually the only thing needed would > be to run the test suite (which ideally would happen automatically on > Gitlab/Emba). The test suite is doesn't yet have enough coverage. And if Emacs fails to build, the test suite cannot help. > For developers not on Windows, it's unfortunately difficult to predict > whether a specific change will break the Windows build or not, and the > large difference between the Windows and other builds doesn't make > this easier. Sure, that's when posting a patch or a separate branch are a good means to let the code be fixed before it lands.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 31 Dec 2020 15:06:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 31 10:06:11 2020 Received: from localhost ([127.0.0.1]:41262 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kuzWl-0008F7-2t for submit <at> debbugs.gnu.org; Thu, 31 Dec 2020 10:06:11 -0500 Received: from mail-oi1-f170.google.com ([209.85.167.170]:34237) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kuzWj-0008Eq-CM for 45198 <at> debbugs.gnu.org; Thu, 31 Dec 2020 10:06:10 -0500 Received: by mail-oi1-f170.google.com with SMTP id s75so22080275oih.1 for <45198 <at> debbugs.gnu.org>; Thu, 31 Dec 2020 07:06:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=gCpSkdnajqlsmVxlxtmIij79CuTU52UYUJAAy24CDyY=; b=JAk/J8f1hjlgzdbUBm4ys6ys61FG/loOZKmMSXD+NtmN/SOg/s5TEcE594x/I9vK+u Qsv8UtkRHmqhQTCuF/SHoRe3fnebpNIDCfZpix+msqHIUzg1baM3GmUeuAOy93/GegUo N2s3g8+K3rnbWUE1RNFmHB4vY8ax+aSxSkInv+UBJGAauVPFjoxWs0Tfjmx6aEiTCbR1 h8qrDLMWc6CRsX1Nz4xkL9GEWhALMBhWpWXrR1OalY2hf46Mdji2v7JyjMxloHftlMZm zbNHdTXu7DKydOK+fRgcW/iSlSCK17zFjHGd2Jjv9PDYJ0UDbpNEGM3y4SPwPHMB4CrR NFsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=gCpSkdnajqlsmVxlxtmIij79CuTU52UYUJAAy24CDyY=; b=H6TLCd/e3SXxALkR/GhpdGXvAOKePake+Moww6jz5+Icql372ZcI9Sjy+g86rU08bR /RxDd1tdMNY1Wl0ui4mSAc51pMsF8Rt03j6DKSzOlb60SMIon9lJirsh/3t8tuGUTsEW ZTp60DEaMO8RpIBB1LVVJ6Kkq+MeQWLoXTNX+jx75sQKJBRZuPGWqmc8+vanxxMEcHrU 0hddlmnkRSqdSkxUze6FVY0DhcOFP7YlgVMd34eh4UbvYuEqMb9hJe+6ejz46WFvOAAb mW9jVrOGDoILpTVVIV9eRNMOi0LS9ab59sx8+/74o0yaKb/wxOlTcAtbrXL6fOZcV2l1 7+Fw== X-Gm-Message-State: AOAM532guj+KW1mPaiqbGkUq8m5JCmNABMHNDenwKy/M+SJzca9w8fQl oUMZHYHkCwwb97sOUF7GpbfHK1BhcnPIDLS5lms= X-Google-Smtp-Source: ABdhPJxymbfGPyU+RGA7E4gCo357blvhSydfXMv9pz6egY3ELfQWaCrZ8RX/evlcTwQU9DAJmpJqVIyaDLMck4HAaRQ= X-Received: by 2002:a54:4881:: with SMTP id r1mr8036307oic.9.1609427163664; Thu, 31 Dec 2020 07:06:03 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> <CAArVCkR=BwguqGBQFO5pjYJZOmHTX-RJGKmUL9Bon-F1fUNSWQ@HIDDEN> <838s9gk476.fsf@HIDDEN> <CAArVCkQAHJCv7ZQfytsrZqBg4Dn0tBsCcjWcpkjkpCzH3CCMrw@HIDDEN> <834kk4k090.fsf@HIDDEN> In-Reply-To: <834kk4k090.fsf@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Thu, 31 Dec 2020 16:05:52 +0100 Message-ID: <CAArVCkT=PmqsBjREFfcrVHRAXjtjfVvTH4uvL9_pARvor4pgQQ@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Eli Zaretskii <eliz@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Di., 29. Dez. 2020 um 18:09 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>: > > > From: Philipp Stephani <p.stephani2@HIDDEN> > > Date: Tue, 29 Dec 2020 17:05:33 +0100 > > Cc: Stefan Monnier <monnier@HIDDEN>, Bastien <bzg@HIDDEN>, 4= 5198 <at> debbugs.gnu.org, > > Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> > > > > Am Di., 29. Dez. 2020 um 16:44 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>= : > > > > > > > It would be great if someone could test whether the Windows build > > > > still works after that, thanks! > > > > > > I only skimmed the changes, but I'm already quite sure they will brea= k > > > the Windows build. > > > > Why? Everything should be behind ifdefs/conditional compilation, > > otherwise compilation on macOS would also break. > > Because some/many Gnulib replacements are incompatible with how the > w32 port of Emacs works. In particular, functions which operate on > file names don't support UTF-8 encoded file names; Gnulib's 'stat' and > 'fstat' don't support security-related features from which we glean > owner and group of files; network-related functions need special > handling in Emacs to support subprocess functionality; etc. That's a fair point, but does the mere presence of these replacements really break the build? Could we somehow make them not break the build? > > > > . Gnulib modules pulled to support seccomp should be disabled in th= e > > > MS-Windows build, by suitable changes to nt/mingw-cfg.site and/or > > > nt/gnulib-cfg.mk; and > > > > This shouldn't be necessary, as Gnulib is compatible with Windows (I > > guess, since we use it elsewhere) > > Not when Emacs is concerned, see above. We use only small parts of > Gnulib on Windows, for those reasons. And we don't use any Gnulib > functions that accept file names. > > > (That's also what gnulib-cfg.mk says: "In general, do NOT omit modules > > that don't need to be omitted, to minimize the differences from > > upstream gnulib.mk and thus make the maintenance easier.") > > I know; I wrote that. However, this talks about code that will be > actually _used_ in the Windows build, whereas here we are talking > about "ballast": the related code will not be used at all. So it > makes sense not to make our job harder by adding unnecessary code, > which then will need to be audited for compatibility. Your Gnulib > import adds quite a lot of modules, which makes the audit a large job. Independent of this discussion, are there ways to reduce the size of the auditing job? I'd hope that eventually the only thing needed would be to run the test suite (which ideally would happen automatically on Gitlab/Emba). For developers not on Windows, it's unfortunately difficult to predict whether a specific change will break the Windows build or not, and the large difference between the Windows and other builds doesn't make this easier. > > > > . header files used to support seccomp code should be #ifdef'ed by > > > HAVE_LINUX_SECCOMP_H or similar, and likewise with any code neede= d > > > for seccomp and unnecessary otherwise. > > > > That should already be the case. > > It isn't, at least not in general. Just one example: > > diff --git a/src/emacs.c b/src/emacs.c > index 2a32083..a044535 100644 > --- a/src/emacs.c > +++ b/src/emacs.c > @@ -33,6 +33,8 @@ along with GNU Emacs. If not, see <https://www.gnu.o= rg/licenses/>. */ > #include "lisp.h" > #include "sysstdio.h" > > +#include <read-file.h> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< > > This header is included unconditionally, although it shouldn't be > needed on Windows. Sure, it's not needed, but does it actually break the build? I'd rather limit the number of preprocessor statements as much as possible (and reasonable). > > > Turning the question around: is building the branch on Windows > > actually broken? If so, what are the error messages? > > I didn't have time to build it, and probably won't have enough time in > the following days, sorry. I have the co-maintainer job to do, and > there's a pretest of Emacs 27.2 under way on top of that. So I cannot > show the error messages. Others are encouraged to try the branch and > report the actual problems; I just wanted to give a heads-up, in the > hope that it will help adapting and merging the branch sooner. Thanks, no pressure, this clearly isn't urgent. > > > > Btw, I wonder why you needed to import the read-file module from > > > Gnulib -- does it provide any features that we couldn't implement on > > > our own? I'm asking because that module caused you to pull in quite = a > > > few dependency modules from Gnulib, and I'm asking myself whether tha= t > > > is really justified. > > > > We could implement it ourselves, if we wanted, and in an earlier > > version of the code I did that. But it's easier and less error-prone > > to reuse an existing library. > > I question the wisdom of that, FWIW. Every unnecessary dependency on > Gnulib is IMO an addition to the maintenance burden. It also makes > the job of adapting the Windows build harder, because for example > Gnulib's fopen cannot be used in Emacs on Windows, whereas we have > emacs_fopen for the same purpose, which doesn't have that problem. Yeah, there are pros and cons for either approach. Typically, reusing code is the way to go, since code is a liability, and the less we have to maintain, the better. But I do see your point that using Gnulib is too much of a burden for Windows right now (though I still hope that we can eventually improve Gnulib enough that we can use it directly on Windows). I've now created a new branch scratch/seccomp-no-gnulib-2 that uses fopen directly, without Gnulib dependencies. (I considered using emacs_fopen, but since that allows users to quit and therefore in theory can run Lisp code, I'm not sure we can use it here. Also, since this only works on GNU/Linux, we don't have to deal with Windows filenames.)
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 30 Dec 2020 15:36:46 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 30 10:36:46 2020 Received: from localhost ([127.0.0.1]:50717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kudWo-0006en-Fj for submit <at> debbugs.gnu.org; Wed, 30 Dec 2020 10:36:46 -0500 Received: from outbound.soverin.net ([116.202.65.218]:36505) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <alan@HIDDEN>) id 1kudWm-0006eV-Lr for 45198 <at> debbugs.gnu.org; Wed, 30 Dec 2020 10:36:45 -0500 Received: from smtp.soverin.net (unknown [10.10.3.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 5CF476008F; Wed, 30 Dec 2020 15:36:38 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [159.69.232.142]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1609342597; bh=iZILMyrvBuuYXvd+s9VRav7wlKwDGTrXRS94DP+a4tY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=HQGSelwE2etuha3fZtpCJoE5VubFpF882y3nCoxvw4bRW4UAbRNmrqP7FK5cCMsyD V8A0RkzZjcUxzOQOcntZwjKQFJ/mgORW8vDhsksmOeXAu7Ng9t0ySnuzgL6D99UvNE VDYZnB5gyiNPTUdSRvtYsPp4KIjCe0Bj8UcIH7ni7sLmicSSDfp6x6FnyO/LKe8bp/ XeG479IzP1jPfjNHQijbfY1hPsSVGZ0ccR+Lmamake2gFJJ+2OQkM8B5Olt4BPFMN4 pLeThZQYgqG9GydAfrUwky1/Xl/oBgCVkmJ2t80GGhZSKr/iejVjWMdI60PQIWO1qf az4MlOC96BbOg== Received: by breton.holly.idiocy.org (Postfix, from userid 501) id 8EAF920295BE6B; Wed, 30 Dec 2020 15:36:33 +0000 (GMT) Date: Wed, 30 Dec 2020 15:36:33 +0000 From: Alan Third <alan@HIDDEN> To: Mattias =?iso-8859-1?Q?Engdeg=E5rd?= <mattiase@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <X+yegeZKr5VjAp1p@HIDDEN> Mail-Followup-To: Alan Third <alan@HIDDEN>, Mattias =?iso-8859-1?Q?Engdeg=E5rd?= <mattiase@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, Bastien <bzg@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, =?iso-8859-1?Q?Jo=E3o_T=E1vora?= <joaotavora@HIDDEN>, Philipp Stephani <p.stephani2@HIDDEN> References: <F6832EA6-7059-4F6A-A028-771D063DD8CB@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <F6832EA6-7059-4F6A-A028-771D063DD8CB@HIDDEN> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45198 Cc: 45198 <at> debbugs.gnu.org, Bastien <bzg@HIDDEN>, Philipp Stephani <p.stephani2@HIDDEN>, =?iso-8859-1?Q?Jo=E3o_T=E1vora?= <joaotavora@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) On Wed, Dec 30, 2020 at 03:59:19PM +0100, Mattias Engdegård wrote: > Here is a bare-bones macOS sandbox implementation. In practice, it > would probably be called in an --eval argument to guard anything > executed later. It should be sufficient for the typical untrusted > flymake checker running in an Emacs subprocess and printing to > stdout/stderr. It may make more sense to use darwin instead of macos in the name, unless it is actually specific to macOS. I believe OpenDarwin is still a thing. -- Alan Third
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 30 Dec 2020 14:59:28 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 30 09:59:28 2020 Received: from localhost ([127.0.0.1]:50533 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kucwi-0005WN-1O for submit <at> debbugs.gnu.org; Wed, 30 Dec 2020 09:59:28 -0500 Received: from mail205c50.megamailservers.eu ([91.136.10.215]:56796 helo=mail193c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1kucwf-0005W4-4e for 45198 <at> debbugs.gnu.org; Wed, 30 Dec 2020 09:59:26 -0500 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1609340363; bh=F6FuE04fNiqMycyD6dDQBbOboz6a//MCtgyXf6qqiQ8=; h=From:Subject:Date:Cc:To:From; b=LIYping6Q4XAfDD1lcN8mHGbL/+bec59+V0CjXJ+Iyr56viwcLiz3EtwLuhVuOiGN XPUF8BcXgyehUS5UZB85JgMCkUJPEApiRQF5ASP/koI2Dvz+wzyrYY6JeLKiDPWvoa xThXKR3ucKvayal4c3C4syLnmH0O7pwVyO2bSF28= Feedback-ID: mattiase@HIDDEN Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se [188.150.171.71]) (authenticated bits=0) by mail193c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0BUExKEk021256; Wed, 30 Dec 2020 14:59:21 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: multipart/mixed; boundary="Apple-Mail=_D73D3F94-4567-4C01-8C2E-AC319FE69E44" Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-Id: <F6832EA6-7059-4F6A-A028-771D063DD8CB@HIDDEN> Date: Wed, 30 Dec 2020 15:59:19 +0100 To: 45198 <at> debbugs.gnu.org X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A742F1A.5FEC95CB.0027, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=TYHoSiYh c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=M51BFTxLslgA:10 a=OCr-RfVi6S2wSVDVX0wA:9 a=CjuIK1q_8ugA:10 a=yiRCvGavlT-ZiGpzhI4A:9 a=De_Ol2h6w80A:10 a=pHzHmUro8NiASowvMSCR:22 a=Ew2E2A-JSTLzCXPT_086:22 X-Origin-Country: SE X-Spam-Score: 3.2 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Here is a bare-bones macOS sandbox implementation. In practice, it would probably be called in an --eval argument to guard anything executed later. It should be sufficient for the typical untrusted fl [...] Content analysis details: (3.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [91.136.10.215 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 2.2 FAKE_REPLY_B No description available. X-Debbugs-Envelope-To: 45198 Cc: Alan Third <alan@HIDDEN>, Bastien <bzg@HIDDEN>, Philipp Stephani <p.stephani2@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 2.2 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Here is a bare-bones macOS sandbox implementation. In practice, it would probably be called in an --eval argument to guard anything executed later. It should be sufficient for the typical untrusted fl [...] Content analysis details: (2.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [91.136.10.215 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 2.2 FAKE_REPLY_B No description available. --Apple-Mail=_D73D3F94-4567-4C01-8C2E-AC319FE69E44 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Here is a bare-bones macOS sandbox implementation. In practice, it would = probably be called in an --eval argument to guard anything executed = later. It should be sufficient for the typical untrusted flymake checker = running in an Emacs subprocess and printing to stdout/stderr. --Apple-Mail=_D73D3F94-4567-4C01-8C2E-AC319FE69E44 Content-Disposition: attachment; filename=macos-sandbox.diff Content-Type: application/octet-stream; x-unix-mode=0644; name="macos-sandbox.diff" Content-Transfer-Encoding: 7bit diff --git a/lisp/subr.el b/lisp/subr.el index ed0d6978d0..729c4ac70b 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -6036,4 +6036,18 @@ internal--format-docstring-line This is intended for internal use only." (internal--fill-string-single-line (apply #'format string objects))) +(defun sandbox-enter (dirs) + "Enter a sandbox only permitting reading files under DIRS. +DIRS is a list of directory names. Most other operations such as +writing files and network access are disallowed. +Existing open descriptors can still be used freely." + (unless (eq system-type 'darwin) + (error "not implemented on this platform")) + (macos-sandbox-init + (concat "(version 1)\n" + "(deny default)\n" + (mapconcat (lambda (dir) + (format "(allow file-read* (subpath %S))\n" dir)) + dirs "")))) + ;;; subr.el ends here diff --git a/src/sysdep.c b/src/sysdep.c index eeb9d18494..3b2da8c637 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -4054,8 +4054,33 @@ str_collate (Lisp_Object s1, Lisp_Object s2, } #endif /* WINDOWSNT */ +#ifdef DARWIN_OS + +/* This call is not in the platform header files. You just Have to Know. */ +int sandbox_init_with_parameters(const char *profile, + uint64_t flags, + const char *const parameters[], + char **errorbuf); + +DEFUN ("macos-sandbox-init", Fmacos_sandbox_init, Smacos_sandbox_init, + 1, 1, 0, + doc: /* Enter a sandbox whose permitted access is curtailed by PROFILE. +Already open descriptors can be used freely. */) + (Lisp_Object profile) +{ + char *err = NULL; + if (sandbox_init_with_parameters (SSDATA (profile), 0, NULL, &err) != 0) + error ("sandbox error: %s", err); + return Qnil; +} + +#endif /* DARWIN_OS */ + void syms_of_sysdep (void) { defsubr (&Sget_internal_run_time); +#ifdef DARWIN_OS + defsubr (&Smacos_sandbox_init); +#endif } --Apple-Mail=_D73D3F94-4567-4C01-8C2E-AC319FE69E44--
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 29 Dec 2020 17:09:33 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 29 12:09:33 2020 Received: from localhost ([127.0.0.1]:40065 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kuIV2-0002Td-Ru for submit <at> debbugs.gnu.org; Tue, 29 Dec 2020 12:09:33 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55100) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1kuIUz-0002TG-HQ for 45198 <at> debbugs.gnu.org; Tue, 29 Dec 2020 12:09:32 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34551) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1kuIUu-00075t-9Y; Tue, 29 Dec 2020 12:09:24 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3156 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1kuIUs-0005dl-PV; Tue, 29 Dec 2020 12:09:23 -0500 Date: Tue, 29 Dec 2020 19:09:15 +0200 Message-Id: <834kk4k090.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> In-Reply-To: <CAArVCkQAHJCv7ZQfytsrZqBg4Dn0tBsCcjWcpkjkpCzH3CCMrw@HIDDEN> (message from Philipp Stephani on Tue, 29 Dec 2020 17:05:33 +0100) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> <CAArVCkR=BwguqGBQFO5pjYJZOmHTX-RJGKmUL9Bon-F1fUNSWQ@HIDDEN> <838s9gk476.fsf@HIDDEN> <CAArVCkQAHJCv7ZQfytsrZqBg4Dn0tBsCcjWcpkjkpCzH3CCMrw@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: bzg@HIDDEN, 45198 <at> debbugs.gnu.org, monnier@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Philipp Stephani <p.stephani2@HIDDEN> > Date: Tue, 29 Dec 2020 17:05:33 +0100 > Cc: Stefan Monnier <monnier@HIDDEN>, Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, > João Távora <joaotavora@HIDDEN> > > Am Di., 29. Dez. 2020 um 16:44 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>: > > > > > It would be great if someone could test whether the Windows build > > > still works after that, thanks! > > > > I only skimmed the changes, but I'm already quite sure they will break > > the Windows build. > > Why? Everything should be behind ifdefs/conditional compilation, > otherwise compilation on macOS would also break. Because some/many Gnulib replacements are incompatible with how the w32 port of Emacs works. In particular, functions which operate on file names don't support UTF-8 encoded file names; Gnulib's 'stat' and 'fstat' don't support security-related features from which we glean owner and group of files; network-related functions need special handling in Emacs to support subprocess functionality; etc. > > . Gnulib modules pulled to support seccomp should be disabled in the > > MS-Windows build, by suitable changes to nt/mingw-cfg.site and/or > > nt/gnulib-cfg.mk; and > > This shouldn't be necessary, as Gnulib is compatible with Windows (I > guess, since we use it elsewhere) Not when Emacs is concerned, see above. We use only small parts of Gnulib on Windows, for those reasons. And we don't use any Gnulib functions that accept file names. > (That's also what gnulib-cfg.mk says: "In general, do NOT omit modules > that don't need to be omitted, to minimize the differences from > upstream gnulib.mk and thus make the maintenance easier.") I know; I wrote that. However, this talks about code that will be actually _used_ in the Windows build, whereas here we are talking about "ballast": the related code will not be used at all. So it makes sense not to make our job harder by adding unnecessary code, which then will need to be audited for compatibility. Your Gnulib import adds quite a lot of modules, which makes the audit a large job. > > . header files used to support seccomp code should be #ifdef'ed by > > HAVE_LINUX_SECCOMP_H or similar, and likewise with any code needed > > for seccomp and unnecessary otherwise. > > That should already be the case. It isn't, at least not in general. Just one example: diff --git a/src/emacs.c b/src/emacs.c index 2a32083..a044535 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -33,6 +33,8 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ #include "lisp.h" #include "sysstdio.h" +#include <read-file.h> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< This header is included unconditionally, although it shouldn't be needed on Windows. > Turning the question around: is building the branch on Windows > actually broken? If so, what are the error messages? I didn't have time to build it, and probably won't have enough time in the following days, sorry. I have the co-maintainer job to do, and there's a pretest of Emacs 27.2 under way on top of that. So I cannot show the error messages. Others are encouraged to try the branch and report the actual problems; I just wanted to give a heads-up, in the hope that it will help adapting and merging the branch sooner. > > Btw, I wonder why you needed to import the read-file module from > > Gnulib -- does it provide any features that we couldn't implement on > > our own? I'm asking because that module caused you to pull in quite a > > few dependency modules from Gnulib, and I'm asking myself whether that > > is really justified. > > We could implement it ourselves, if we wanted, and in an earlier > version of the code I did that. But it's easier and less error-prone > to reuse an existing library. I question the wisdom of that, FWIW. Every unnecessary dependency on Gnulib is IMO an addition to the maintenance burden. It also makes the job of adapting the Windows build harder, because for example Gnulib's fopen cannot be used in Emacs on Windows, whereas we have emacs_fopen for the same purpose, which doesn't have that problem.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 29 Dec 2020 16:05:55 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 29 11:05:55 2020 Received: from localhost ([127.0.0.1]:40000 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kuHVT-0008Io-7w for submit <at> debbugs.gnu.org; Tue, 29 Dec 2020 11:05:55 -0500 Received: from mail-oi1-f169.google.com ([209.85.167.169]:43702) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kuHVO-0008IP-QP for 45198 <at> debbugs.gnu.org; Tue, 29 Dec 2020 11:05:54 -0500 Received: by mail-oi1-f169.google.com with SMTP id q25so15015074oij.10 for <45198 <at> debbugs.gnu.org>; Tue, 29 Dec 2020 08:05:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=de0DtHzrl+qsxf9cvWumYZsmBa16mqCF1k3VrVZ12PM=; b=J+OoGylXasoGrmWNav8g/ZJPyTK4aBDD+zPwYa07QV2MglkXMuEjYl/FxA8zefLjDE JkGX4Nmh99yOpSVe3jphoMA8vBo0EPMeqwUrjy/YoCs2mYtJU2ZKNfCG9SjsEKdMueC0 Ny2of40yahMjLuoG4TdOOTBWIXmsVgDj1nyaN9ghrmyKlf6MJphSXTP8n6vKjWKUrun6 k11ukMGLXASnzVanTGfXEHwzhIy98KkWePBiuUk3GBCwMwOVgd8FknsJXP3Lhar+FEif 2iJSk806LOIj43G0olVAKZOXJDaaY0sMOGvVIhTQ18WYEtQxXCcJ1fRXptbhODdfRfdz DzJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=de0DtHzrl+qsxf9cvWumYZsmBa16mqCF1k3VrVZ12PM=; b=OhneUndCEBYKTDeynHizRvhcbtTJ+Pom9PmKJ3gVBzYEMXikgpeyLUGPzFilBnunME A5w8G8TZQedZGJR5uMXW47eRn/2Xlwq93MWiUHocG1SdN9Zp4fhr3JEzN2u6t3hPfitD x//ol+sFYwoNNbA7pZVzuT+S/wC2Idr9DYlQIOyofd+r4zju/88n9pvAf3hOXgyfZ4Iv 0uieo/dYSLjn9AkmDWgD0LeBMpAzj3qnhOK3wD0+2VpvIbNbI7XfXlyCsfHsdL6Omx0h f4HtB6ZNHq8qHQj4iMbWvEkM0fthZ0B2dfjq9Zv5M3GzdaXdSIcEFthJm8/C4VmDvni4 mtxg== X-Gm-Message-State: AOAM532RWmTGtyJCkFKDqt2chRwX4W2XGEEDp6gwLsggP72zOz2bAnQ5 azE94kDG0KOeCPUniAQycf16VMNDy8CPv9e/22Y= X-Google-Smtp-Source: ABdhPJxDEv8cNsTMuHjj4NMY7WDicW8AUHhWFONjPE8R+zxaelp/GN9+Esgps5ZJN0wiW6jmEZC+CfcoA+1KtAIqTyE= X-Received: by 2002:aca:3b03:: with SMTP id i3mr2735536oia.170.1609257944980; Tue, 29 Dec 2020 08:05:44 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> <CAArVCkR=BwguqGBQFO5pjYJZOmHTX-RJGKmUL9Bon-F1fUNSWQ@HIDDEN> <838s9gk476.fsf@HIDDEN> In-Reply-To: <838s9gk476.fsf@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Tue, 29 Dec 2020 17:05:33 +0100 Message-ID: <CAArVCkQAHJCv7ZQfytsrZqBg4Dn0tBsCcjWcpkjkpCzH3CCMrw@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Eli Zaretskii <eliz@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am Di., 29. Dez. 2020 um 16:44 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>: > > > It would be great if someone could test whether the Windows build > > still works after that, thanks! > > I only skimmed the changes, but I'm already quite sure they will break > the Windows build. Why? Everything should be behind ifdefs/conditional compilation, otherwise compilation on macOS would also break. > > This feature is not relevant to the MS-Windows build of Emacs, at > least currently (I don't think Windows implements equivalent features > in a way that is even remotely similar to GNU/Linux). So to make sure > the Windows port doesn't break, we must take every measure to avoid > compiling any of the related code on MS-Windows. In particular: > > . Gnulib modules pulled to support seccomp should be disabled in the > MS-Windows build, by suitable changes to nt/mingw-cfg.site and/or > nt/gnulib-cfg.mk; and This shouldn't be necessary, as Gnulib is compatible with Windows (I guess, since we use it elsewhere), and the MS C library provides an emulation layer for some parts of the POSIX API (e.g. file descriptors). OTOH, conditional compilation incurs a maintenance cost, so we should avoid it if possible. (That's also what gnulib-cfg.mk says: "In general, do NOT omit modules that don't need to be omitted, to minimize the differences from upstream gnulib.mk and thus make the maintenance easier.") > . header files used to support seccomp code should be #ifdef'ed by > HAVE_LINUX_SECCOMP_H or similar, and likewise with any code needed > for seccomp and unnecessary otherwise. That should already be the case. Turning the question around: is building the branch on Windows actually broken? If so, what are the error messages? > > Btw, I wonder why you needed to import the read-file module from > Gnulib -- does it provide any features that we couldn't implement on > our own? I'm asking because that module caused you to pull in quite a > few dependency modules from Gnulib, and I'm asking myself whether that > is really justified. We could implement it ourselves, if we wanted, and in an earlier version of the code I did that. But it's easier and less error-prone to reuse an existing library.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 29 Dec 2020 15:44:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 29 10:44:11 2020 Received: from localhost ([127.0.0.1]:39967 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kuHAR-0007ch-5q for submit <at> debbugs.gnu.org; Tue, 29 Dec 2020 10:44:11 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39486) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1kuHAP-0007cT-Tf for 45198 <at> debbugs.gnu.org; Tue, 29 Dec 2020 10:44:10 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:32976) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1kuHAK-0006DO-7C; Tue, 29 Dec 2020 10:44:04 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1934 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1kuHAJ-0002Hc-39; Tue, 29 Dec 2020 10:44:03 -0500 Date: Tue, 29 Dec 2020 17:43:57 +0200 Message-Id: <838s9gk476.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> In-Reply-To: <CAArVCkR=BwguqGBQFO5pjYJZOmHTX-RJGKmUL9Bon-F1fUNSWQ@HIDDEN> (message from Philipp Stephani on Tue, 29 Dec 2020 14:50:56 +0100) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> <CAArVCkR=BwguqGBQFO5pjYJZOmHTX-RJGKmUL9Bon-F1fUNSWQ@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: bzg@HIDDEN, 45198 <at> debbugs.gnu.org, monnier@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Philipp Stephani <p.stephani2@HIDDEN> > Date: Tue, 29 Dec 2020 14:50:56 +0100 > Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, > João Távora <joaotavora@HIDDEN> > > I've pushed a modified version of these two patches onto the > scratch/seccomp branch. Thank you for working on this. > It would be great if someone could test whether the Windows build > still works after that, thanks! I only skimmed the changes, but I'm already quite sure they will break the Windows build. This feature is not relevant to the MS-Windows build of Emacs, at least currently (I don't think Windows implements equivalent features in a way that is even remotely similar to GNU/Linux). So to make sure the Windows port doesn't break, we must take every measure to avoid compiling any of the related code on MS-Windows. In particular: . Gnulib modules pulled to support seccomp should be disabled in the MS-Windows build, by suitable changes to nt/mingw-cfg.site and/or nt/gnulib-cfg.mk; and . header files used to support seccomp code should be #ifdef'ed by HAVE_LINUX_SECCOMP_H or similar, and likewise with any code needed for seccomp and unnecessary otherwise. Btw, I wonder why you needed to import the read-file module from Gnulib -- does it provide any features that we couldn't implement on our own? I'm asking because that module caused you to pull in quite a few dependency modules from Gnulib, and I'm asking myself whether that is really justified.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 29 Dec 2020 13:58:52 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 29 08:58:52 2020 Received: from localhost ([127.0.0.1]:38049 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kuFWW-0004Ue-Kd for submit <at> debbugs.gnu.org; Tue, 29 Dec 2020 08:58:52 -0500 Received: from mail-ot1-f49.google.com ([209.85.210.49]:42650) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kuFWU-0004UP-Kb for 45198 <at> debbugs.gnu.org; Tue, 29 Dec 2020 08:58:51 -0500 Received: by mail-ot1-f49.google.com with SMTP id 11so11850816oty.9 for <45198 <at> debbugs.gnu.org>; Tue, 29 Dec 2020 05:58:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=HVyu+kna+HQUalY6IvvGMXQks42Ds25EEK/3hqLdmzs=; b=Yjy2/1sd7fseXReXfoNOTuNdrPG2GWM04LKfjFUHM2mxA5BrEdrfSEGr3SlYefmBOA PtKsktppSpla3HyR5pGELqIqS/3JylZ7d00bV1FXACDwrfHdazJvNwMP0vlf33/OUnqU 3I8vms2xAWVf+xNVG8aEhQSlwVL7GaxLL3ojTCBXb/KQLz5BZrOUlcvHYuhWmBgXWgum scsNHFPlShcIGq3QGrVdWkiuLknDQYsJDkn9VQYXrdTCEklSBioduUDCidkYIzGODtdd TvLqVFMAyCZvrd6vVqxC8WFrYt2+Rvt0JaxBAeN2trdVxkqs2CXJRvp3tenRN6lpSnfi iGcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=HVyu+kna+HQUalY6IvvGMXQks42Ds25EEK/3hqLdmzs=; b=SZUaWdrw374qLmmSwbyh3VUhqvrt9ctsF3JxqVPleuYCZHRIApqEMRWG+QNS33pESX g8JjmV3x0daLe/tqxwt5RSG/x9C4XuIyE9m3KF4yFrtkEp26ePkS5KewXo0w9GndxRJw CPsz21jq4Z6rM6hPqS5DiAMirjbZp5lmah3+fEGzfisW3z47oJh0E4uotRmVOjg2c/AL X9jeXsU7evxnwLWzg7Rt5AaGNCbFS2RPXEH4WZ9VI5EjaiDoj+5wWIG6TsdVilrjc1iZ UB2woRf6P/271baZo5Vog3AwWF+B8p3s9d7qTEDzLAB5E2Yrg21NVNJtRD+LV0iwTgiZ KYow== X-Gm-Message-State: AOAM531htafizMfO8bVXfTbmCOwmvge5B/TiHckQ/xuOoDs6+nka7axj r/3Vd4oFd+A5th4t9CgT3MzdoIsfpFHzMK8GtRg= X-Google-Smtp-Source: ABdhPJx9mkp4EdOIhnolTRU0B+NSwqz8IP7VCBJ26p9ZW7Be5bOakVHSXDGBi6BYyYBvdFweBP5g6mguUuMf1up9FPA= X-Received: by 2002:a9d:269:: with SMTP id 96mr35840463otb.174.1609250324758; Tue, 29 Dec 2020 05:58:44 -0800 (PST) MIME-Version: 1.0 References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> <CAArVCkST2aCAa3a3YbNZEpysek0HrwPDsVDBRtt4=NSYXFObRQ@HIDDEN> <CADwFkm=Jjx3EnF6SYYNr=hFFLWuL=ZFeuMVhyOprbufydN9Dkg@HIDDEN> In-Reply-To: <CADwFkm=Jjx3EnF6SYYNr=hFFLWuL=ZFeuMVhyOprbufydN9Dkg@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Tue, 29 Dec 2020 14:58:33 +0100 Message-ID: <CAArVCkSupEERq11HhSBY_GWA+SyU-b+aRHc8auY=VABPZ7LFgw@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Kangas <stefankangas@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Mo., 28. Dez. 2020 um 09:23 Uhr schrieb Stefan Kangas <stefankangas@HIDDEN>: > > Philipp Stephani <p.stephani2@HIDDEN> writes: > > > I agree, but we should use the time until Emacs 28 gets released to > > gain experience with the API as well, so we should design the API > > rather sooner than later, because once Emacs 28 is released, we can't > > change it any more in incompatible ways. > > IMO, we could release it as an experimental feature and prominently > announce that API changes might happen between major versions of Emacs. > That would give us room to make even backward-incompatible changes, > if/when necessary. > > I don't necessarily advocate this; I only want to point out that this is > an option. It's an option, though I'm not sure whether such announcements really work all that well. Once an API becomes widely used, it becomes hard to change it, even if it was announced to be unstable. Thus I'd advocate for starting with the most conservative and malleable approach possible: - Don't allow reading the entire filesystem, but only selected files and directories. - Don't allow writing files (for now), communication should happen through stdout. (That's probably good enough for Flymake, but soon we'll need to find a more flexible approach.) - Don't return a process object, but an opaque sandbox object. For example: (cl-defun start-sandbox (function &key readable-directories stdout-buffer) ...) (defun wait-for-sandbox (sandbox) ...)
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 29 Dec 2020 13:51:18 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 29 08:51:18 2020 Received: from localhost ([127.0.0.1]:38034 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kuFP8-0004Iv-LW for submit <at> debbugs.gnu.org; Tue, 29 Dec 2020 08:51:18 -0500 Received: from mail-oi1-f178.google.com ([209.85.167.178]:39000) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kuFP7-0004Ij-Ev for 45198 <at> debbugs.gnu.org; Tue, 29 Dec 2020 08:51:14 -0500 Received: by mail-oi1-f178.google.com with SMTP id w124so14660115oia.6 for <45198 <at> debbugs.gnu.org>; Tue, 29 Dec 2020 05:51:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=dRtJ5xcdlr8vEeSUA4T/X3KN8A8rwGIv+LQq8MsKmXs=; b=vIBGxfXOo2bk3Mo2BItgFeOHenEWzE+9eSSurZ5JM4oqxGw1HGkin4fXcJmtmfTgLC YZPL9VwVmkcrIZu0ofbm0/xvmCZz/O6aMF2uh+xScAHESFSnEbxKFP58BukZi/2qHrzv DNet01RBhwgqaioeE4n/VbBj6QmaWr567ElLKZlFww00T3SHCPXMpE9Xt0KUWZLtu0v1 6IF6ptBQEEsMBeuoeEzj9Bk4ebmtwfP0nRHsxQ/SdesGF+pfyvTWnmRmLR5O+tnRKfd6 hYJI1WR8MMgmYkxuQhOmw2tRyMT6cewbLkZZGlI/I3DmwHr+xGMe5up0TFv5HjsF+4/a u5JQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=dRtJ5xcdlr8vEeSUA4T/X3KN8A8rwGIv+LQq8MsKmXs=; b=rP1C+zfvPbVI6h2SRhrVc6BZ1zo/wyCA2PTnpY6qkARO4sf5+u5WM5IaPpVQAX8NY6 FmHs2aF4I5uX2LI8zN+n8DRqDyvNn+MCMtkOincP+ffKm+onZ091BIMhGz8xntjjs5dX gf0WaZzoyVYqVPS2xNbWi1zU/d9c5BhjZZZF/wltHMmVnITqOLOuZiZvtJhcHJBPBBE6 3y9qm75gJiYTvs0tw23vP+YygF79UrPVrYJz6RK5+jYokH+iUk2vvKQUdWTcpEe0xjB5 XzU/XvZDZxeehixbC6lEiumnlxi5sRq8KrgILW8NfUWKXZnuZI3h/5uZPBlqU2brmfKS NOtQ== X-Gm-Message-State: AOAM533bdhRYtn6mmiCVt9amroesMKphwGg4vsxNsKKMdr171Ozxgs9p b5Mc7oc1hY1Ysgq5rDzW31J5mK0xQbwFQydWeTM= X-Google-Smtp-Source: ABdhPJzC9pU0RuVMlodG8YYB65WGR6qB8XwS71/ZHOxcfO8qEF6f9CgamFIwlMqSYRWKiBQOnjMGLhSYooOSte8qBkM= X-Received: by 2002:aca:3a02:: with SMTP id h2mr2226685oia.65.1609249867655; Tue, 29 Dec 2020 05:51:07 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> In-Reply-To: <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Tue, 29 Dec 2020 14:50:56 +0100 Message-ID: <CAArVCkR=BwguqGBQFO5pjYJZOmHTX-RJGKmUL9Bon-F1fUNSWQ@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Sa., 19. Dez. 2020 um 23:22 Uhr schrieb Philipp Stephani <p.stephani2@HIDDEN>: > > Am Mo., 14. Dez. 2020 um 12:05 Uhr schrieb Philipp Stephani > <p.stephani2@HIDDEN>: > > > > >> - This will need someone else doing the implementation. > > > > Looks like we already have a volunteer for macOS. > > > > For Linux, this shouldn't be that difficult either. The sandbox nee= ds > > > > to install a mount namespace that only allows read access to Emacs'= s > > > > installation directory plus any input file and write access to know= n > > > > output files, and enable syscall filters that forbid everything exc= ept > > > > a list of known-safe syscalls (especially exec). I can take a stab = at > > > > that, but I can't promise anything ;-) > > > > > > Looking forward to it. > > > > > > > I've looked into this, and what I'd suggest for now is: > > [=E2=80=A6] > > 2. Generate appropriate seccomp filters using libseccomp or similar. > > Here's a patch for this step. I've pushed a modified version of these two patches onto the scratch/seccomp branch. It would be great if someone could test whether the Windows build still works after that, thanks!
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 28 Dec 2020 08:23:20 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 28 03:23:20 2020 Received: from localhost ([127.0.0.1]:34169 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ktnoG-0003Tc-0v for submit <at> debbugs.gnu.org; Mon, 28 Dec 2020 03:23:20 -0500 Received: from mail-pj1-f51.google.com ([209.85.216.51]:53459) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <stefankangas@HIDDEN>) id 1ktnoE-0003TP-3s for 45198 <at> debbugs.gnu.org; Mon, 28 Dec 2020 03:23:18 -0500 Received: by mail-pj1-f51.google.com with SMTP id iq13so5594186pjb.3 for <45198 <at> debbugs.gnu.org>; Mon, 28 Dec 2020 00:23:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=vSu2VNT0JOo5IGChklOF0uxyXC9LCUwzIlixXfRQCWQ=; b=bQ8TWfRCVAt5sr4iA5tuYTMlHEFiH6rbQxugviOQ89XFsidMjZFUA66APREWbbpFfG YMzZFlInLcFE49OZk2+3Ij31NoMIYhtylt5OFo554iRPmPvD/6t0gxjAnCxQN457g2o5 uj89b9stz+fkVyZ39oFxYb9k78xAkQU6186xQVbOiQlLtIdokuwjeVd932zP9mBCSP0K tTlehBU513cKe1eP2FRMdFP9wHSHOoupyC39gD4UtiRsRh+lUDx7MmpY4B4IK6kH+cSx gNakcvOkPZbRQlcI5yCZx2oc8zUrW4XLEGn9tF1BELMQyZfroncfpBII3jpBzWA+/J+K YjgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=vSu2VNT0JOo5IGChklOF0uxyXC9LCUwzIlixXfRQCWQ=; b=Dxdk4Lm/zu7owXuhKvqElPjjGAuURG8xZqDtfvacLw4BXroqt2eiYEBtPH52zN//nZ LHb10uJLh3Sg/ON2ausxOQAbBjYz3rNY2R++M1o40cp7cN388dOLlJn4VWb20QzNJc8c p7Ra+BphLynKPyBQKXHooSHRtXS85yamDtoxRMcnIc7DTSqUKcaPKD306oS8f3W1yM+K 1GGWS2hwSsUlv0a7KubZ/+cvzmK6t8qcQgr7PdJHPS0nmz3a1bR7syX3nJfID3Rhxhw7 1v6mCpVvKcbNQRCUlqH1M8jKfTmJPcmWkvIEYjWn0mqJuusghTpIq9jUBhLOnwR+OX1E SSuQ== X-Gm-Message-State: AOAM530O3jeBlcoiD2unB/nQwr5HpQibgreQZsk129daj4c03f/swbgR rApRayGUsNa/23OSe3jMKA6+V5NfIvUhC9Bm36E= X-Google-Smtp-Source: ABdhPJxPfmow9VXcIaOgsK9+98ud2IP2KwpDdSYFd0HYQLBOjaX+7ZzALbp8RF1LmVTxWfoW9qzopKhpoADYk6XQv8w= X-Received: by 2002:a17:90b:100e:: with SMTP id gm14mr19977084pjb.179.1609143792190; Mon, 28 Dec 2020 00:23:12 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 28 Dec 2020 09:23:11 +0100 From: Stefan Kangas <stefankangas@HIDDEN> In-Reply-To: <CAArVCkST2aCAa3a3YbNZEpysek0HrwPDsVDBRtt4=NSYXFObRQ@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> <CAArVCkST2aCAa3a3YbNZEpysek0HrwPDsVDBRtt4=NSYXFObRQ@HIDDEN> MIME-Version: 1.0 Date: Mon, 28 Dec 2020 09:23:11 +0100 Message-ID: <CADwFkm=Jjx3EnF6SYYNr=hFFLWuL=ZFeuMVhyOprbufydN9Dkg@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Philipp Stephani <p.stephani2@HIDDEN>, =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Philipp Stephani <p.stephani2@HIDDEN> writes: > I agree, but we should use the time until Emacs 28 gets released to > gain experience with the API as well, so we should design the API > rather sooner than later, because once Emacs 28 is released, we can't > change it any more in incompatible ways. IMO, we could release it as an experimental feature and prominently announce that API changes might happen between major versions of Emacs. That would give us room to make even backward-incompatible changes, if/when necessary. I don't necessarily advocate this; I only want to point out that this is an option. (Of course, this would not preclude trying to make it as stable as possible before Emacs 28.)
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 22 Dec 2020 14:43:39 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 22 09:43:39 2020 Received: from localhost ([127.0.0.1]:49311 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1krit0-0000A5-Rq for submit <at> debbugs.gnu.org; Tue, 22 Dec 2020 09:43:39 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:37510) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1krisy-00009l-EP for 45198 <at> debbugs.gnu.org; Tue, 22 Dec 2020 09:43:38 -0500 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id D66D880A63; Tue, 22 Dec 2020 09:43:30 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 5EDC68063C; Tue, 22 Dec 2020 09:43:29 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1608648209; bh=DFxlCzTKXbvOhjZ7LePVl3XPd3QSnfpkwPrnJTfMV50=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=DQLbIax+GaUe+VrZaAlT+Mq4BpVz9p9IzUNxyl9pp3e8l9sbvF577J5NBq1LZCnR4 XDk8qqV13vkBbmqaJeTPOV1xUwe21AQb49c+E10T9/Jkv/gWql6ZZN7QjAt4CmpQzj LrjzRWb36m38Et4f2XRRutq7O1BOzlVTL+HLWgyxzLyKfVp6S9KE8UWNt7oEFY7IJt nhTPVKWxnGUS7V7E4RUt9xDyy0cLcQT5jaIvcEY6MkTCkbbzzYxGbnODOtHhojqglB aDCjH6RhtsRiJR97lsnhL0LbEepcsgj74SRBaKO6McK6OfUq9f9bXuykLKJOVfKjK/ sgUSY1MEyyQBw== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 2092D1203CA; Tue, 22 Dec 2020 09:43:29 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwv8s9p6gxu.fsf-monnier+emacs@HIDDEN> References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <jwv4kkoiim5.fsf-monnier+emacs@HIDDEN> <CAArVCkSZ_DJ-i3h6owOedgYj6eB60YedX3eo5wP3kr_Bhy8Spw@HIDDEN> <jwvczz5mlr6.fsf-monnier+emacs@HIDDEN> <CAArVCkTLyGNXyaC2QAoU4TM9+VxeWPEG5gOWLCGzbHC9cR+udg@HIDDEN> <CAArVCkQF2=Yf2+vqMiM4Zo2Ah7M4Lyb9t1YnE2ujMi5467_uVA@HIDDEN> Date: Tue, 22 Dec 2020 09:43:28 -0500 In-Reply-To: <CAArVCkQF2=Yf2+vqMiM4Zo2Ah7M4Lyb9t1YnE2ujMi5467_uVA@HIDDEN> (Philipp Stephani's message of "Tue, 22 Dec 2020 11:57:50 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.072 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?windows-1252?B?Sm/j?= =?windows-1252?B?byBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Such a state is crucial because the subprocesses will want to > read the entire input before sending output, which isn't possible if I wouldn't presume this. If/when such a thing is needed, it's probably easier to pass the input via a temp file. E.g. that's what `elisp-flymake-byte-compile` does. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 22 Dec 2020 11:12:24 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 22 06:12:24 2020 Received: from localhost ([127.0.0.1]:49032 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1krfaa-0006MB-Eq for submit <at> debbugs.gnu.org; Tue, 22 Dec 2020 06:12:24 -0500 Received: from mail-ot1-f42.google.com ([209.85.210.42]:34670) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1krfaW-0006Lq-Gr for 45198 <at> debbugs.gnu.org; Tue, 22 Dec 2020 06:12:22 -0500 Received: by mail-ot1-f42.google.com with SMTP id a109so11583710otc.1 for <45198 <at> debbugs.gnu.org>; Tue, 22 Dec 2020 03:12:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=uMu4RWCq/2VYXQGL7aN+8o8bQtqwa3q5PRJzTotei48=; b=DRLJoCUQZLY2IwA8+8IJM5nmF9DxtWnLvXbb4Wxam+3x/PvvtxBQzCT1r+Hiq0VBZE Jc8X9m/vOZxaTWsQCOXkcJP7+UJ33I0lYBxBFJVxZhPCJR2tgg/5VqrHHAYA0ZYoLD9f /NjQqAG2bMDNpx89W5ie/CKGWNfcauE4oYP9UTykv6M2gCnGz1TaDogLqow+Tor5BFI+ t5TuN8h26m7nw9jD9KI3gtaCHJzASgUhkF97FUMkd3+qrcxqwySPlyPCBaINNpMe23Uw HuGqInxHQsMipYdsS6dTHl5It+pG7TqGEn8jw8JsbMWziTwanIp2c2j8yREX9BQOC5gH f0lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=uMu4RWCq/2VYXQGL7aN+8o8bQtqwa3q5PRJzTotei48=; b=VGptvT5/eWi4jml5YT2XiJdQLb5TGSz1G856NuzyGgWTrwpw8+ky63nvV3AagOodS2 1sCG/TGaS3fpmSur5urV7bTN15BfxedKjqUULRrFsiT4RjpZXHELpZX5HTsdYqlaznJK d6g3Fw5Yhn1jpnAdQNQPFn5ANBrFqY4KwpcpCPW/KBGk1Q/ofMaB3q3TP8q5fBg+ufGu +K677SecMUE+8pn2j7ChYKt3WxIzuiPg6rqCQPVWSgo6QETHXi+ifxFRw2T2gUhQC/MY 8sT+aAuQ41imkZISlYbNWvdCnvj8F+MwcOgqBzrQ4i/SSs0/+2dQaBBKrgHopu/fQNHH Ew+w== X-Gm-Message-State: AOAM5304bU81v8hKsITe5h/SMDGA9p3Nlndf2sAe11/w99hEfNDnlU+1 /hvGHJOo+Fyu4CGS3MHiMlELHYirhKnCQZNtGe4= X-Google-Smtp-Source: ABdhPJyzUi0Mv9T8bAyNRekCn5T8irp7qot59Q58Ra3RbWydP31Cj9LfNhcj/UCwvg08iQAAL8wXcp3tzoQsxc4UjTE= X-Received: by 2002:a9d:72c4:: with SMTP id d4mr15718178otk.149.1608635534719; Tue, 22 Dec 2020 03:12:14 -0800 (PST) MIME-Version: 1.0 References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> In-Reply-To: <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Tue, 22 Dec 2020 12:12:03 +0100 Message-ID: <CAArVCkST2aCAa3a3YbNZEpysek0HrwPDsVDBRtt4=NSYXFObRQ@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Sa., 19. Dez. 2020 um 18:19 Uhr schrieb Mattias Engdeg=C3=A5rd <mattiase= @acm.org>: > > 19 dec. 2020 kl. 16.08 skrev Philipp Stephani <p.stephani2@HIDDEN>: > > > I'd say these two questions are somewhat independent of each other. > > Even with an internal-only interface, people will start to assume that > > reading arbitrary files works. > > I'm personally not a huge fan of such internal interfaces though. They > > are necessary in some cases, but a high-level UI framework like > > Flymake shouldn't need to use them. Besides, since Flymake is released > > as an external package, it should rather not use internal interfaces > > in the first place. > > What I meant is that there is no way of knowing whether an API is rubbish= or not without having put it to use ourselves first (preferably in two or = more ways), so let's not front-load the design. We know that this is true r= egardless of how good programmers we think we are. > Flymake would be a natural user, but it must cope with our own demands fi= rst. I agree, but we should use the time until Emacs 28 gets released to gain experience with the API as well, so we should design the API rather sooner than later, because once Emacs 28 is released, we can't change it any more in incompatible ways. > There's a difference though: flycheck is installed by someone who wants t= o use it and is presumably ready for some setting-up. In contrast, we are a= iming at an on-by-default zero-configuration Emacs feature, which means tha= t the bar is higher. It's meant precisely for those who would not install a= nd configure flycheck, so false positives may have effects opposite the int= ended. Yes, we should aim for a low false-positive rate, but it doesn't have to be zero. As I said, the false-positive rate (or rather, false-discovery rate) for C currently is often 100%, so maybe we should start with that first.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 22 Dec 2020 10:58:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 22 05:58:12 2020 Received: from localhost ([127.0.0.1]:49017 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1krfMq-0005w2-NH for submit <at> debbugs.gnu.org; Tue, 22 Dec 2020 05:58:12 -0500 Received: from mail-oi1-f180.google.com ([209.85.167.180]:37178) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1krfMl-0005vk-RV for 45198 <at> debbugs.gnu.org; Tue, 22 Dec 2020 05:58:10 -0500 Received: by mail-oi1-f180.google.com with SMTP id l207so14372819oib.4 for <45198 <at> debbugs.gnu.org>; Tue, 22 Dec 2020 02:58:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=xrVTw71WVVwbQhhSXf/INk8bDBDughgLQpmEr7GfEOI=; b=TCgsqJWvaUtT0y8gMNSgwcPT6LuvOouWY3HJP3cRgpkddN12Jnx7zad+6Pgwnvr2RT JKPF5hSgLyhTOmuf/hlUVkvuDKRhCvwiS5JFy1FgDce0Ex9Kv9cdlwL0wjvrHdHAioYo 9hJqRhWh/+IrEi0M5N2QDqP/bvGwWQbKNENPVgfMrZXyEnTaxUzq6a3us+XmaGbkct+K V1MpoOCWf+d0aqpuiHNOkwK56o7fziVaV6ibBvspNRt+PQlKwRn6SeLRvmMFiY9rrDQV JnVifdRw/7Nm+tApdKykAoLEPsE8E4JsCJHIHT+NcM5DM4NA9GHrgsj/07t2S8I8kx+E z60w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=xrVTw71WVVwbQhhSXf/INk8bDBDughgLQpmEr7GfEOI=; b=cUb4W2XU4geiK6Lddx7Ig7ei6J9CWz37r+AZRsIHBmYbehMqyz5YWNS9tK/B9ocn5Y qAiv2Pg6D+pff+dS4rVPUbxnb3Tyum9chNDg/x4geahMXc01yZoFOLqQCT9v2uNjvffn kw7C9TbUcIjCCJrKrdRN2uqkOZpflPqI4EOH48mU6DP0wc9EcgO4cuYKPL046cZHMLk7 B+zaqG4NTZgNOyqcHkPvmCllRBLf31beQCxB4ZA3gs4TEccepWf7vRI3pU7vivdJO0ei Ju0Hm6Sb1TlHQSiLQ9ZsYxr38DvB1U0qM5uypXTDcuMZ+NO3n7sObarLXba7Ng6mtupY Ax9A== X-Gm-Message-State: AOAM532+yUY2FvepJddgAB507UPEGoRj10soKJZ5pNVm5zMYuYdQ62YR GLiTeXrRbBZza4m3YzYQ1J2RVeAOS5Qpov54Yxc= X-Google-Smtp-Source: ABdhPJwwnWTk8V7qbOKyj1LkZmDpF0S3X1jCx978LwaudUKIomzsmxKjuzOUo+kdIELEyhY8Dk7bJ2/1aOp+qonQ4Ec= X-Received: by 2002:aca:3a02:: with SMTP id h2mr13564172oia.65.1608634681911; Tue, 22 Dec 2020 02:58:01 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <jwv4kkoiim5.fsf-monnier+emacs@HIDDEN> <CAArVCkSZ_DJ-i3h6owOedgYj6eB60YedX3eo5wP3kr_Bhy8Spw@HIDDEN> <jwvczz5mlr6.fsf-monnier+emacs@HIDDEN> <CAArVCkTLyGNXyaC2QAoU4TM9+VxeWPEG5gOWLCGzbHC9cR+udg@HIDDEN> In-Reply-To: <CAArVCkTLyGNXyaC2QAoU4TM9+VxeWPEG5gOWLCGzbHC9cR+udg@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Tue, 22 Dec 2020 11:57:50 +0100 Message-ID: <CAArVCkQF2=Yf2+vqMiM4Zo2Ah7M4Lyb9t1YnE2ujMi5467_uVA@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am So., 20. Dez. 2020 um 13:28 Uhr schrieb Philipp Stephani <p.stephani2@HIDDEN>: > > > If/when someone implements that, then indeed we can just use a process > > object to represent the parent in the client as well. > > > > Yes, but again, there's no difference between the standard streams and > using newly-allocated file descriptors. In both cases, you need a > variant of Fmake_pipe_process that doesn't call pipe2 twice, but wraps > two existing file descriptors in its infd and outfd. Whether those > happen to be 0 and 1 or something passed on the command line makes no > difference. > On the parent process side, if you want to use a separate pipe pair, > you need a way to create a pipe process that doesn't use O_CLOEXEC and > allows reading out the open file descriptors to be able to pass them > to the subprocess on the command line. > These changes aren't large, but they are necessary if you want to go > the "extra pipe pair" route. I've played around with this a bit (both with the pipe pair and with the socketpair approach), but one issue is that Emacs doesn't know about half-closed processes (that you can only write to, but not read from). Such a state is crucial because the subprocesses will want to read the entire input before sending output, which isn't possible if the output gets closed after EOF from the input (and that's what wait_reading_process_output does for both pipes and sockets). So we'd need to introduce the 'half-closed' process state first, which requires somewhat larger changes to Emacs's process design and interface.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 20 Dec 2020 18:39:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 20 13:39:43 2020 Received: from localhost ([127.0.0.1]:45610 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kr3cN-0001Q6-6t for submit <at> debbugs.gnu.org; Sun, 20 Dec 2020 13:39:43 -0500 Received: from mail-ot1-f43.google.com ([209.85.210.43]:46818) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kr3cH-0001Pq-Sk for 45198 <at> debbugs.gnu.org; Sun, 20 Dec 2020 13:39:42 -0500 Received: by mail-ot1-f43.google.com with SMTP id w3so6916182otp.13 for <45198 <at> debbugs.gnu.org>; Sun, 20 Dec 2020 10:39:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=ZcRftGnIlfunjaKxdi6yc/NY2U8xG2ixEJYfySmUmvc=; b=AJISIYB2bI8LFyMVaWU0rT9pDW9kEFnl0h061Vvf0mpvwuJ4ydAi4tTD3t/fmF81yQ o5pN52Io/PUifgAL4pnXrZLIp6ex/O1NGMHVGWZxZLn9wH4qwvl/BOMDxMh4sxHK2v0Z yO7vCZVA8+5kIHO7/6PQ7vRWyhb4adUZxYD/1vd/UjlydxXD/duoe27FNv1n7BHm+DOv g0cBwlPFVP7kpWRmD3sAOPWinq95ORXC3u9Cjyn7NraRDxRxFxycoakKZYbCwhYqxC4+ ELlhy8MmKmNP2Jtb1oaEaBAX0DfyNmRKOPlB0/BcHPtFVqxypKvWONPxvxHVqVJmsWG2 GlvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=ZcRftGnIlfunjaKxdi6yc/NY2U8xG2ixEJYfySmUmvc=; b=is7jweSjflRdndyZoRWFxdcLDOTkh1rcBtQ3Lfn8YRPo6N/D7lYFfNYUHjniCbhbF/ JNyvCa36oIz6/HGl/+bScCepTQVWgsHfl6Y5ZxzlT3Zd+xIbKDiY+M1iKsRl4K/QTLD6 QDxB2I+09HrE8Mq00rdRJFauNAmg5r+OoxoyVihpUgafpwFxZDzwTyuXdeuYtYJmex1d /OQCGK+iFF4WdjrM1ocdZyJ/Ez8Uq1qcSUP8gMl+3wY+Qq0gs7Smjwi/TBHppkmm7RIm l9IcIMLfKpuy8UNvsJwRQ1pICWmkcOAunRRy3R/G8qn0lb9+xcg/DFZEBiDLlYni/tjA 5Aww== X-Gm-Message-State: AOAM531xGcRc5OxfJFfjWWtJS/tjOMnua93fQZIjgIcFFeonWnj1sgtb bwq5Q7YSKxujTYXm5fvZkyMs7ESiPHCmkgNAFYM= X-Google-Smtp-Source: ABdhPJzDtIJUfdavPEN4JLLnlB3AhKTm2eOPm/fQR7XJ2cWjyjr/bddF4INNUPzpGQSCmalZBeEcD/eM06lfBA917AE= X-Received: by 2002:a05:6830:3106:: with SMTP id b6mr9317851ots.36.1608489571953; Sun, 20 Dec 2020 10:39:31 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> <831rfktsxp.fsf@HIDDEN> <CAArVCkS3GfC-JwU=F_WHUon7KYfqdLRjG9dHxm_tVwJEOArKPQ@HIDDEN> <83pn34s551.fsf@HIDDEN> In-Reply-To: <83pn34s551.fsf@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sun, 20 Dec 2020 19:39:20 +0100 Message-ID: <CAArVCkTgpDutNs1SBTHuy1hJmm0LJOpo6USidhL-juer11tXJA@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Eli Zaretskii <eliz@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am So., 20. Dez. 2020 um 19:29 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>: > > > From: Philipp Stephani <p.stephani2@HIDDEN> > > Date: Sun, 20 Dec 2020 19:14:07 +0100 > > Cc: Stefan Monnier <monnier@HIDDEN>, Bastien <bzg@HIDDEN>, 4= 5198 <at> debbugs.gnu.org, > > Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> > > > > Am So., 20. Dez. 2020 um 16:10 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>= : > > > > > > > +LIBSECCOMP=3D > > > > +AC_CHECK_HEADER([seccomp.h], > > > > + [AC_CHECK_LIB([seccomp], [seccomp_init], [LIBSECCOMP=3D-lseccomp= ])]) > > > > +AC_SUBST([LIBSECCOMP]) > > > > + > > > > > > Please also add this to the list in EMACS_CONFIG_FEATURES. > > > > Hmm, this isn't really an Emacs feature, just an internal helper > > binary, so I don't think it should be in any features list. > > What about the --seccomp command-line switch to Emacs: isn't its > support a feature that should be called out? OK, that's in a different patch though. I'll add a feature for it in that patch then.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 20 Dec 2020 18:29:42 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 20 13:29:42 2020 Received: from localhost ([127.0.0.1]:45603 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kr3Sg-0001BP-6x for submit <at> debbugs.gnu.org; Sun, 20 Dec 2020 13:29:42 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43736) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1kr3Se-0001BB-2e for 45198 <at> debbugs.gnu.org; Sun, 20 Dec 2020 13:29:41 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:50473) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1kr3SY-0003G9-Qk; Sun, 20 Dec 2020 13:29:34 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2114 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1kr3SW-0005a2-GM; Sun, 20 Dec 2020 13:29:34 -0500 Date: Sun, 20 Dec 2020 20:29:14 +0200 Message-Id: <83pn34s551.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> In-Reply-To: <CAArVCkS3GfC-JwU=F_WHUon7KYfqdLRjG9dHxm_tVwJEOArKPQ@HIDDEN> (message from Philipp Stephani on Sun, 20 Dec 2020 19:14:07 +0100) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> <831rfktsxp.fsf@HIDDEN> <CAArVCkS3GfC-JwU=F_WHUon7KYfqdLRjG9dHxm_tVwJEOArKPQ@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: bzg@HIDDEN, 45198 <at> debbugs.gnu.org, monnier@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Philipp Stephani <p.stephani2@HIDDEN> > Date: Sun, 20 Dec 2020 19:14:07 +0100 > Cc: Stefan Monnier <monnier@HIDDEN>, Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, > João Távora <joaotavora@HIDDEN> > > Am So., 20. Dez. 2020 um 16:10 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>: > > > > > +LIBSECCOMP= > > > +AC_CHECK_HEADER([seccomp.h], > > > + [AC_CHECK_LIB([seccomp], [seccomp_init], [LIBSECCOMP=-lseccomp])]) > > > +AC_SUBST([LIBSECCOMP]) > > > + > > > > Please also add this to the list in EMACS_CONFIG_FEATURES. > > Hmm, this isn't really an Emacs feature, just an internal helper > binary, so I don't think it should be in any features list. What about the --seccomp command-line switch to Emacs: isn't its support a feature that should be called out?
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 20 Dec 2020 18:14:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 20 13:14:29 2020 Received: from localhost ([127.0.0.1]:45597 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kr3Dw-0007BO-Se for submit <at> debbugs.gnu.org; Sun, 20 Dec 2020 13:14:29 -0500 Received: from mail-oi1-f177.google.com ([209.85.167.177]:40068) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kr3Ds-0007B4-8F for 45198 <at> debbugs.gnu.org; Sun, 20 Dec 2020 13:14:27 -0500 Received: by mail-oi1-f177.google.com with SMTP id p126so9049042oif.7 for <45198 <at> debbugs.gnu.org>; Sun, 20 Dec 2020 10:14:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=WhFyPfcNrbhH8CBCITWte9rnaVIkkzB/D2hJgUY6f/M=; b=FcDXCknAEP3CGDJEMLea+qj9R7vK7Ai4vkNzU/K5BrCOnNKz/zLGazRnD3NpzggH3I CaPhZ8Qlg9dkUXW85nxNzq0CGiElOTJna+J5cpUrKm9ldTBCWG4N/BjbZMdh942Bd/qg SVzp1YVfr/FHrYpI9i1ecbpuGJ21NH4zlnedvfxzzxZ5fH9IWvB+cgloXqndIsy0ELPI SKXG7c1W18y4h/QFIN8qES+pBHdfSvCV77tpH625bbRuDClNFPgJgEd6ljBxc/DFog6l NdCyIxz+lK725g4MFUcqRiX4crTZLpGaI/XASwzit/UCw878pVi4hAztaTEFCCqHUIM7 HaPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=WhFyPfcNrbhH8CBCITWte9rnaVIkkzB/D2hJgUY6f/M=; b=nQv+mGpbDmpQ/WGOl4iC9q3u/S46VVkbTFx5b//TBD/ujNS1ohCTobAJqNZCWxGlcb l0SYAaHjhx3o6WnlvYNYnIloXR1kFfDbVBJNTQvzE64RlAOd24NjfmDPaDOEpxKs4gLy RiSE7v+J4PfZ6G0eWOmH3bQ91/2JUHCbMrw6SU5/SJ7ga0p23ieWpBCw/ljfN8EAMujC ITGFb5oAFLD126rHhW7z33laHztcZatkp6lZSPEtK22HeSqHOe96TqjD+dtVabR0R5WA /wlvaVyCT978sZr1Qwf0GK4dholeaL/v8wE21Mensfm28K/qlzLiBHoPUxqiUUWeoCia 0w2g== X-Gm-Message-State: AOAM530ELJCSbmoG8xpQnI3OKl+vdw4PY7I+trqcjpoNEuIbMDtgAS2M qQ2MUjtKz6LXx9/cnRVAoJHRYecnhoJ2SFFvpOo= X-Google-Smtp-Source: ABdhPJyo8T23N+xIDfZFffMVTD0y7mx1utbbZYBznroquJ2rrg1qecqg+tQRTHBBis6RIF/uAwJWecZRMWq4emxG4i4= X-Received: by 2002:a54:4881:: with SMTP id r1mr8865177oic.9.1608488058594; Sun, 20 Dec 2020 10:14:18 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> <831rfktsxp.fsf@HIDDEN> In-Reply-To: <831rfktsxp.fsf@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sun, 20 Dec 2020 19:14:07 +0100 Message-ID: <CAArVCkS3GfC-JwU=F_WHUon7KYfqdLRjG9dHxm_tVwJEOArKPQ@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Eli Zaretskii <eliz@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am So., 20. Dez. 2020 um 16:10 Uhr schrieb Eli Zaretskii <eliz@HIDDEN>: > > > From: Philipp Stephani <p.stephani2@HIDDEN> > > Date: Sat, 19 Dec 2020 23:22:08 +0100 > > Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, > > Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> > > > > diff --git a/configure.ac b/configure.ac > > index 087dd67e18..cb698e34fe 100644 > > --- a/configure.ac > > +++ b/configure.ac > > @@ -4186,6 +4186,11 @@ AC_DEFUN > > > > AC_CHECK_HEADERS([linux/seccomp.h]) > > > > +LIBSECCOMP=3D > > +AC_CHECK_HEADER([seccomp.h], > > + [AC_CHECK_LIB([seccomp], [seccomp_init], [LIBSECCOMP=3D-lseccomp])]) > > +AC_SUBST([LIBSECCOMP]) > > + > > Please also add this to the list in EMACS_CONFIG_FEATURES. Hmm, this isn't really an Emacs feature, just an internal helper binary, so I don't think it should be in any features list.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 20 Dec 2020 15:10:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 20 10:10:30 2020 Received: from localhost ([127.0.0.1]:45352 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kr0Lr-0006tb-Lp for submit <at> debbugs.gnu.org; Sun, 20 Dec 2020 10:10:30 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36258) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1kr0Lm-0006tI-3V for 45198 <at> debbugs.gnu.org; Sun, 20 Dec 2020 10:10:26 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47374) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1kr0Lg-0003Lp-V9; Sun, 20 Dec 2020 10:10:16 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1528 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1kr0Lf-0005oH-VL; Sun, 20 Dec 2020 10:10:16 -0500 Date: Sun, 20 Dec 2020 17:09:54 +0200 Message-Id: <831rfktsxp.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> In-Reply-To: <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> (message from Philipp Stephani on Sat, 19 Dec 2020 23:22:08 +0100) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: bzg@HIDDEN, 45198 <at> debbugs.gnu.org, monnier@HIDDEN, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Philipp Stephani <p.stephani2@HIDDEN> > Date: Sat, 19 Dec 2020 23:22:08 +0100 > Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, > João Távora <joaotavora@HIDDEN> > > diff --git a/configure.ac b/configure.ac > index 087dd67e18..cb698e34fe 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -4186,6 +4186,11 @@ AC_DEFUN > > AC_CHECK_HEADERS([linux/seccomp.h]) > > +LIBSECCOMP= > +AC_CHECK_HEADER([seccomp.h], > + [AC_CHECK_LIB([seccomp], [seccomp_init], [LIBSECCOMP=-lseccomp])]) > +AC_SUBST([LIBSECCOMP]) > + Please also add this to the list in EMACS_CONFIG_FEATURES.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 20 Dec 2020 15:08:55 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 20 10:08:55 2020 Received: from localhost ([127.0.0.1]:45348 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kr0KN-0006qz-9q for submit <at> debbugs.gnu.org; Sun, 20 Dec 2020 10:08:55 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:36009) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1kr0KL-0006ql-KY for 45198 <at> debbugs.gnu.org; Sun, 20 Dec 2020 10:08:53 -0500 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 25F38100229; Sun, 20 Dec 2020 10:08:48 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id A9F211000D1; Sun, 20 Dec 2020 10:08:46 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1608476926; bh=wyfx1meQKJRg3Uo37QrMmJeckESa+rp809i7Fhw1O8I=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=ZR00DdlQm9LNdP7h2KaEbxxuWmeszMu3RjqipwqQy7bt7OKm4mahMNoDPVNWqJpg6 gQIJaXSueC7gtFNcwQnTg8AZNxwKMdTFno9LPT/sYBRm2cwD0PZlzJMu+J/A9Or01O UCmLXNvDgq7dj8rJu17O61R1WQDaN7rchAPh/e28QT0NhRTqdtw6oF9+8iGXuqbOcz TZFS7KK8kofUY7Z1asT2el/EHADzcqCc1MU7fr9WXoHJ0fPsr0ZkIJzQ3kiZsUGbWj IgAlAKaAhHtQa4iqSbNAAO+0vmB8zFe/ZGSu4HXjUX7rQp5vxdgLXCVSQKqiVEPMsI C8pzP8P5J8ZeA== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 4ACED1203CA; Sun, 20 Dec 2020 10:08:46 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Mattias =?windows-1252?Q?Engdeg=E5rd?= <mattiase@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwv3600jzjn.fsf-monnier+emacs@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> <jwvblepoeuq.fsf-monnier+emacs@HIDDEN> <239166D0-63F2-48CF-AC26-B306B99419BC@HIDDEN> <jwvblepv7ex.fsf-monnier+emacs@HIDDEN> <8623C27F-BDD9-4F6D-B365-51D0FEBCCDD2@HIDDEN> <jwva6u8lgoz.fsf-monnier+emacs@HIDDEN> <495A446B-9BC6-4B6D-BBA3-493A917E0E57@HIDDEN> Date: Sun, 20 Dec 2020 10:08:45 -0500 In-Reply-To: <495A446B-9BC6-4B6D-BBA3-493A917E0E57@HIDDEN> ("Mattias =?windows-1252?Q?Engdeg=E5rd=22's?= message of "Sun, 20 Dec 2020 15:12:01 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.090 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Philipp Stephani <p.stephani2@HIDDEN>, =?windows-1252?B?Sm/jbyBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >>> It was suggested that no init files be loaded to make the Emacs subprocess >>> start faster. (I'm neutral here.) >> I still have no idea what this has to do with autoloads. > If Emacs does not read the user's init file in the checking process, then > autoloads for external packages are not defined and the byte-compiler will > complain when encountering calls to functions defined in external packages > not explicitly required. Other people seem to believe it's not a big deal; > I'm unsure. Oh, I think I see what you mean. I suspect that "autoload" is not the crux of the matter (and "init file" isn't either) and we'll only know how important the issue is and how best to fix it with more experience. E.g. maybe the better option will be for `elisp-flymake-byte-compile` to try and pass down some of that contextual info (e.g. `package-directory-list` and `load-path`) to the subprocess, or maybe we'll want `elisp-flymake-byte-compile` to recognize the `Package-Requires:` header, ... I think the more important pressing issue will be to distinguish "config file" (i.e. packages whose main purpose is to change the behavior of Emacs when they're loaded) from "ELisp package file" (packages which, according to the coding convention, should not change the behavior of Emacs when loaded), since config files are likely to be full of false positives that can't be conveniently fixed by the user whereas for genuine ELisp package files we have a range of tools to fix the warnings. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 20 Dec 2020 14:12:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 20 09:12:08 2020 Received: from localhost ([127.0.0.1]:43934 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqzRQ-00057i-2O for submit <at> debbugs.gnu.org; Sun, 20 Dec 2020 09:12:08 -0500 Received: from mail205c50.megamailservers.eu ([91.136.10.215]:34134 helo=mail193c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1kqzRN-00057Z-T9 for 45198 <at> debbugs.gnu.org; Sun, 20 Dec 2020 09:12:06 -0500 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1608473524; bh=hKY/qNSrnij/YMBTgespLFqAIVidpainOX1kzDFbXCI=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=hQRmhygTx0RfU2hJUdN80sgaY6gPl9j6eAwdvM+9ZatsTVYs1+W/AWAvlK4QYh0c1 9F/KGrxzWVbOXv81RCWjANa5fkIhEDHSHIySHqw80K+zDiOm7PZCj/roQpKVc7vzTW bCXypM9L/3+Z4KtqQUxRJmVvyRktFJFcxf1bsyTU= Feedback-ID: mattiase@HIDDEN Received: from stanniol.lan (c-064ae655.032-75-73746f71.bbcust.telenor.se [85.230.74.6]) (authenticated bits=0) by mail193c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0BKEC1PE021032; Sun, 20 Dec 2020 14:12:03 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> In-Reply-To: <jwva6u8lgoz.fsf-monnier+emacs@HIDDEN> Date: Sun, 20 Dec 2020 15:12:01 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <495A446B-9BC6-4B6D-BBA3-493A917E0E57@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> <jwvblepoeuq.fsf-monnier+emacs@HIDDEN> <239166D0-63F2-48CF-AC26-B306B99419BC@HIDDEN> <jwvblepv7ex.fsf-monnier+emacs@HIDDEN> <8623C27F-BDD9-4F6D-B365-51D0FEBCCDD2@HIDDEN> <jwva6u8lgoz.fsf-monnier+emacs@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A782F17.5FDF5BB4.0022, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=TYHoSiYh c=1 sm=1 tr=0 a=Ni+dBsiEfW2GqKMPYZim9A==:117 a=Ni+dBsiEfW2GqKMPYZim9A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=iRZporoAAAAA:8 a=bxs3z4yZ_2YFj9mWbJwA:9 a=CjuIK1q_8ugA:10 a=NOBgFS-JBQ2l-kSd6-zu:22 X-Origin-Country: SE X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Philipp Stephani <p.stephani2@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) 20 dec. 2020 kl. 15.02 skrev Stefan Monnier <monnier@HIDDEN>: >=20 >> It was suggested that no init files be loaded to make the Emacs = subprocess >> start faster. (I'm neutral here.) >=20 > I still have no idea what this has to do with autoloads. If Emacs does not read the user's init file in the checking process, = then autoloads for external packages are not defined and the = byte-compiler will complain when encountering calls to functions defined = in external packages not explicitly required. Other people seem to = believe it's not a big deal; I'm unsure.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 20 Dec 2020 14:02:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 20 09:02:34 2020 Received: from localhost ([127.0.0.1]:43910 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqzIA-0004tC-EH for submit <at> debbugs.gnu.org; Sun, 20 Dec 2020 09:02:34 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:42044) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1kqzI8-0004sz-IZ for 45198 <at> debbugs.gnu.org; Sun, 20 Dec 2020 09:02:32 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 3DFE6440334; Sun, 20 Dec 2020 09:02:27 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 236F2440099; Sun, 20 Dec 2020 09:02:26 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1608472946; bh=tjP5ZY8W7/QbIj/jhSekLcpYN8HcXmW5T/QikeGxO9Y=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=WEGpjBkY4bARaZSd6vPDQT93ybMGT72e3WBdm/tTwDFFhc0yhSru+Uo5ltIVIXwL7 /mLP1USv+ASkZfl1mE4D9sJjivv/fkMSSiu6d0Jh4rDeC0+g+xhxuws16Xj63xe4J6 Ux6ioiihSHkiZJix9wEIFKI2nrxSleDxbQBxaAO2DGhxozAtgW9pdiErBnQ7cVVBr2 NnpGJvaCxIW2gRN+LCV0dIC9hJRoEfvA+Mku6ESySWXd2OE3V5BkH7xmukEWhXRrsq oTF3WezqtqWkQLtf2OzUc9j22x6S2RQaU+XTu9+/u9rS83ajTVPQSRhpm+fhwUoQWy d13ZBe2iDb9FA== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id D2BF3120183; Sun, 20 Dec 2020 09:02:25 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Mattias =?windows-1252?Q?Engdeg=E5rd?= <mattiase@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwva6u8lgoz.fsf-monnier+emacs@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> <jwvblepoeuq.fsf-monnier+emacs@HIDDEN> <239166D0-63F2-48CF-AC26-B306B99419BC@HIDDEN> <jwvblepv7ex.fsf-monnier+emacs@HIDDEN> <8623C27F-BDD9-4F6D-B365-51D0FEBCCDD2@HIDDEN> Date: Sun, 20 Dec 2020 09:02:24 -0500 In-Reply-To: <8623C27F-BDD9-4F6D-B365-51D0FEBCCDD2@HIDDEN> ("Mattias =?windows-1252?Q?Engdeg=E5rd=22's?= message of "Sun, 20 Dec 2020 14:15:36 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.071 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Philipp Stephani <p.stephani2@HIDDEN>, =?windows-1252?B?Sm/jbyBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> I don't understand why it would be different for autoloads than for >> functions provided by `require`d packages. > It was suggested that no init files be loaded to make the Emacs subprocess > start faster. (I'm neutral here.) I still have no idea what this has to do with autoloads. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 20 Dec 2020 13:15:47 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 20 08:15:47 2020 Received: from localhost ([127.0.0.1]:43869 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqyYt-0003mK-2D for submit <at> debbugs.gnu.org; Sun, 20 Dec 2020 08:15:47 -0500 Received: from mail70c50.megamailservers.eu ([91.136.10.80]:44110) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1kqyYn-0003m5-Pv for 45198 <at> debbugs.gnu.org; Sun, 20 Dec 2020 08:15:45 -0500 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1608470140; bh=l4hUXCxqwaNBHaeh8zQx09euAyExAJnO342hU7IBRYA=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=QOOdO0SY1PZG0YsIsW2xdxfcUdSKIYtia5AMGqMIYXUMJi/STnlOMMU/jr+Lw3SHB JAyDjNCIZTojUuQI1DUqvIjboVYLzs9sfM5pco3OR5eJ6GMVZjgTzZri9jecJLSV3R wqlnzwqgDg7Nitzop63H2OPJMPQJtGGi8tnhxHcw= Feedback-ID: mattiase@HIDDEN Received: from stanniol.lan (c-064ae655.032-75-73746f71.bbcust.telenor.se [85.230.74.6]) (authenticated bits=0) by mail70c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0BKDFaFJ028422; Sun, 20 Dec 2020 13:15:38 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> In-Reply-To: <jwvblepv7ex.fsf-monnier+emacs@HIDDEN> Date: Sun, 20 Dec 2020 14:15:36 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <8623C27F-BDD9-4F6D-B365-51D0FEBCCDD2@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> <jwvblepoeuq.fsf-monnier+emacs@HIDDEN> <239166D0-63F2-48CF-AC26-B306B99419BC@HIDDEN> <jwvblepv7ex.fsf-monnier+emacs@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A782F18.5FDF4E7C.001D, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=UIOj4xXy c=1 sm=1 tr=0 a=Ni+dBsiEfW2GqKMPYZim9A==:117 a=Ni+dBsiEfW2GqKMPYZim9A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=iRZporoAAAAA:8 a=IvpEyDUsbBtNW09VDtsA:9 a=CjuIK1q_8ugA:10 a=NOBgFS-JBQ2l-kSd6-zu:22 X-Origin-Country: SE X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Philipp Stephani <p.stephani2@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) 19 dec. 2020 kl. 22.01 skrev Stefan Monnier <monnier@HIDDEN>: > I don't understand why it would be different for autoloads than for > functions provided by `require`d packages. It was suggested that no init files be loaded to make the Emacs = subprocess start faster. (I'm neutral here.) > Also, if we add all the dirs in `load-path` to the set of readable > directories (and I do think we want to do that) this should not be > an issue, right? Certainly, as long as we run the code defining the autoloads to begin = with.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 20 Dec 2020 12:29:10 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 20 07:29:10 2020 Received: from localhost ([127.0.0.1]:43834 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqxpm-0000Yi-Dg for submit <at> debbugs.gnu.org; Sun, 20 Dec 2020 07:29:10 -0500 Received: from mail-ot1-f44.google.com ([209.85.210.44]:34062) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kqxpl-0000YW-7g for 45198 <at> debbugs.gnu.org; Sun, 20 Dec 2020 07:29:09 -0500 Received: by mail-ot1-f44.google.com with SMTP id a109so6448512otc.1 for <45198 <at> debbugs.gnu.org>; Sun, 20 Dec 2020 04:29:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dWCwr+RiqpIDBg+4pc0m+Ui9BA5xHZrEqyrPzsFi9F0=; b=aDuxEzjPEOOGXNBmFchnrShY2wC/U0nMlADJPHCcCrsqFBHg3nlpCXNxfFM/tjDx4y 83VopibGX3hIvuTvyxx7XFTY3DAyJq57zB4aPpwBEmN/m0mTeJGqI7uMXu7Bzi/Cb4Om 0lrlQijMmXKi5dXBlol0YNJZaDMvpZZe31wmkkWP8cardd9+lHQ0011OvJb8003FAMfI rfbIK5PTHrVZ1UORHkOnKly4ApwbZBmGR0xj9EcvPpg1t9SuJPO02mPuffMiVoQJWMPW xWSaD9PNC0UYKu8LZGRNaV3UPQRqGW+1S/xmgMp6xQvjjncwLijurxf1OYIvTg8wJVIo j3Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dWCwr+RiqpIDBg+4pc0m+Ui9BA5xHZrEqyrPzsFi9F0=; b=eamO9yVOJ99XkeTuwHlxH+kqwZguWx4wvGqvNtatRJ3XIDpsT4RI9mv5lb8eU/vEx+ 6dY0Sh5n9ofRSi2rAAOTJBBddhj5Sd5KErUbc0k08Lw5ryi4QXxvIIfs9GIgeleT9Aso Np4BcFwGMKmGCg83olHHGJ96jnWjjEqGqaLygkoKDmjNPTfs9q2klPLyPMVFwvtWDq8n NGRPZEB+JfY5D+Wixzqnb1Vgk0tl9SJQ8DZ0JrIw6uY2EiLq1g0nUDCTsOz0ll4WgWnO Fu0/YnJeOYQNpXy+CfhvLWZfSRSK6K/diPU5fAGRDqusTQYw9F3Nxz+X9DdVkid3uKaq 8udw== X-Gm-Message-State: AOAM530Kh6wdzw6K/HsWgZ60/HX6le0rqUIfjNo26VGG2NohJ6xdtkzF n0u/qH9GLNMytZjUFHjgWp1K664zVIJP7s2an6Q= X-Google-Smtp-Source: ABdhPJx63kppc+vGSJP7aqFhrrShrODbyIShcArRhP0hwI+7CBDlqriHsUMcuj++gSLndAQu6rfY3cTu8qYthV9SRo8= X-Received: by 2002:a9d:72c4:: with SMTP id d4mr8996250otk.149.1608467343244; Sun, 20 Dec 2020 04:29:03 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <jwv4kkoiim5.fsf-monnier+emacs@HIDDEN> <CAArVCkSZ_DJ-i3h6owOedgYj6eB60YedX3eo5wP3kr_Bhy8Spw@HIDDEN> <jwvczz5mlr6.fsf-monnier+emacs@HIDDEN> In-Reply-To: <jwvczz5mlr6.fsf-monnier+emacs@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sun, 20 Dec 2020 13:28:51 +0100 Message-ID: <CAArVCkTLyGNXyaC2QAoU4TM9+VxeWPEG5gOWLCGzbHC9cR+udg@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am So., 20. Dez. 2020 um 00:17 Uhr schrieb Stefan Monnier <monnier@HIDDEN>: > > >> I think "the right thing" would be to represent the parent as a process > >> object inside the child. I proposed dedicated functions only because > >> but when it uses stdin/stdout, providing a process object seems awkward > >> to implement. > > What would be the difference? It would be a pipe process wrapping some > > open file descriptor pair in both cases. > > Differences: > > 1- we don't have this pipe process wrapping of stdin/stdout so it's extra > C code we currently don't have. But we also don't have pipe processes wrapping file descriptors passed on the command line, or pipes that aren't close-on-exec, so core changes are needed in any case. > 2- I suspect that it wouldn't be quite so easy because it may interfere > with other preexisting uses of stdin/stdout in the C code. Yes, the read end of the pipe would have to deal with interleaved output from process-send-string and print. > > If/when someone implements that, then indeed we can just use a process > object to represent the parent in the client as well. > Yes, but again, there's no difference between the standard streams and using newly-allocated file descriptors. In both cases, you need a variant of Fmake_pipe_process that doesn't call pipe2 twice, but wraps two existing file descriptors in its infd and outfd. Whether those happen to be 0 and 1 or something passed on the command line makes no difference. On the parent process side, if you want to use a separate pipe pair, you need a way to create a pipe process that doesn't use O_CLOEXEC and allows reading out the open file descriptors to be able to pass them to the subprocess on the command line. These changes aren't large, but they are necessary if you want to go the "extra pipe pair" route.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Dec 2020 23:17:10 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 19 18:17:10 2020 Received: from localhost ([127.0.0.1]:43418 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqlTK-00020D-5h for submit <at> debbugs.gnu.org; Sat, 19 Dec 2020 18:17:10 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:48160) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1kqlTG-0001ze-49 for 45198 <at> debbugs.gnu.org; Sat, 19 Dec 2020 18:17:09 -0500 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 96483100222; Sat, 19 Dec 2020 18:17:00 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 39273100068; Sat, 19 Dec 2020 18:16:59 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1608419819; bh=AH7bywzwbyb9BbkK+wxTbj8m1WSJh8UkUqV0RJfrwo8=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=Co7DBH9wjzDQRVM8gdL8nG94O2BTSQFFBMbgSK44tEOC93kjdNRjaA2CPS9Ze3l4G ebKum9kUbdIHAElHCUl/Fd83t5c7GkgMZpomXqwVt6/rsWXBCtQGgkDxWFGl8Vcpei O0fpKXz1otmzTroFEZSChyEHfqa2GzRIeBkiG5XATYuZKrkciYzJLxsEW2YxBDi7u6 W9UGCWV/ko3XNSFQ1Paq5uvRP1KogeuiivfmlSMFf7wlTSgM8b9gDFDZRE3LtHv6e/ /inlfOENkxDa0iB/ABTf6ukx2mMOQJu7BPdWAEoIWHtMHe6otN0Uvytt4LSwXJ2lvh rKMhlg+ytPXRg== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id EA77412017E; Sat, 19 Dec 2020 18:16:58 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwvczz5mlr6.fsf-monnier+emacs@HIDDEN> References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <jwv4kkoiim5.fsf-monnier+emacs@HIDDEN> <CAArVCkSZ_DJ-i3h6owOedgYj6eB60YedX3eo5wP3kr_Bhy8Spw@HIDDEN> Date: Sat, 19 Dec 2020 18:16:58 -0500 In-Reply-To: <CAArVCkSZ_DJ-i3h6owOedgYj6eB60YedX3eo5wP3kr_Bhy8Spw@HIDDEN> (Philipp Stephani's message of "Sat, 19 Dec 2020 23:41:50 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.088 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?windows-1252?B?Sm/j?= =?windows-1252?B?byBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> I think "the right thing" would be to represent the parent as a process >> object inside the child. I proposed dedicated functions only because >> but when it uses stdin/stdout, providing a process object seems awkward >> to implement. > What would be the difference? It would be a pipe process wrapping some > open file descriptor pair in both cases. Differences: 1- we don't have this pipe process wrapping of stdin/stdout so it's extra C code we currently don't have. 2- I suspect that it wouldn't be quite so easy because it may interfere with other preexisting uses of stdin/stdout in the C code. If/when someone implements that, then indeed we can just use a process object to represent the parent in the client as well. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Dec 2020 22:42:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 19 17:42:10 2020 Received: from localhost ([127.0.0.1]:43359 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqkvS-00017o-Jg for submit <at> debbugs.gnu.org; Sat, 19 Dec 2020 17:42:10 -0500 Received: from mail-ot1-f49.google.com ([209.85.210.49]:37029) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kqkvQ-00017a-0K for 45198 <at> debbugs.gnu.org; Sat, 19 Dec 2020 17:42:09 -0500 Received: by mail-ot1-f49.google.com with SMTP id o11so5545567ote.4 for <45198 <at> debbugs.gnu.org>; Sat, 19 Dec 2020 14:42:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=XkYQxjS7reYmU7UX4w0kZv06hGOgTS9ZR7NgErIslfU=; b=N53f9wcHYmdpztu7EvVGwm+VilWbYkLGbChjLoJ4T+itXkUzCDyZwL6XdlLXPWV742 4NpCC7xTCSAO8jjY3VaZD+j5kaFs5sqa2A/xjZ/vqs//28Lxn5xBgWRVmixjoZZYjnyD D/U91Db1JZsn5bEpAvjfsyHxNIHcZoXDZRPl1wPYo7nrv2NYgYMLnALGagm9vPChUUo/ k71uMhjbiY+W4/6edYodybCx9c6y1pqNEmdKjv3+HkVlPoQGrwyZAcPXRwpvQ35fS8eO N0uGkB7V+AKS7Sy8N+BmsJQsZzFPlAJYPiVV6d2nsl66asY8NicPWfhVGE/j73t0ABGN cjTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=XkYQxjS7reYmU7UX4w0kZv06hGOgTS9ZR7NgErIslfU=; b=NStGBwZSxdGavRqnh9hQUFB6KSS2tOJsYfOrZ43gVFqEC1eTbQ7WI0yFGJQzwMhENH 0NgY56+5LIa1Gt52epsyRH3zcjoaGlBVAtFyfFEuoXVzTseeVOF20Pq+Tal9gczSHq/2 Dj5vFEfYFXotpuydI8mqGZWoytxZqYs9AxQukC843m6hKzAuYZ0LkivUDNmmziVRf/fT mCexI7rBQrj2xx7nKolbTXBMe66T1hJMaPaG7yQ0tRcaGiYupHpI6kc+kk+rkZz4O+nJ rg8ZfMfT8YKU1JqkP7IkpWv3ma4D6up5mSz9A4V639hdmOCsUnITLz9JZAuOaN3fsYXI 5slA== X-Gm-Message-State: AOAM532vnVJ8i0ezVQZlN58TwW/lpyNqIylgzktU6me7vqdsP8Q6ivC8 c2CZUlIG7SZEu5dLb+oRtvh151jBsSbbMiPgIcc= X-Google-Smtp-Source: ABdhPJzt88T0TIS5w+xePStBghxRLYhL3I908pBEFblLab8nYu0KPX/RbTkjGf9hDwsTdq0CQARjm1d2vkKcNReSeUw= X-Received: by 2002:a9d:269:: with SMTP id 96mr7282858otb.174.1608417722174; Sat, 19 Dec 2020 14:42:02 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <jwv4kkoiim5.fsf-monnier+emacs@HIDDEN> In-Reply-To: <jwv4kkoiim5.fsf-monnier+emacs@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sat, 19 Dec 2020 23:41:50 +0100 Message-ID: <CAArVCkSZ_DJ-i3h6owOedgYj6eB60YedX3eo5wP3kr_Bhy8Spw@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Mo., 14. Dez. 2020 um 15:44 Uhr schrieb Stefan Monnier <monnier@HIDDEN>: > >> Returns a process object. > > Depending how much we care about forward compatibility, it might be > > better to return an opaque sandbox object (which will initially wrap a > > process object). > > We always use process objects to represent file-descriptors, so I can't > find any good reason why this one should be different or why an > implementation might find it difficult to expose a process object. If we return a single pipe process object here, then there would be no way to access or wait for the actual Emacs process object. That might be OK, but maybe it's not. Does Emacs guarantee that (while (accept-process-output PIPE)) for some pipe process reads the entire process output and finishes in due time (not too long after the actual process)? Also, how would we report errors from the subprocess? A pipe process can't really fail, right? > > >> FUNCTION is called with no arguments and it can use `sandbox-read` > >> to read the data sent to the process object via `process-send-string`, > >> and `sandbox-reply` to send back a reply to the parent process > >> (which will receive it via its `process-filter`). > > That is, sandbox-read and sandbox-reply just read/write stdin/stdout? > > While it may use stdin/stdout internally, I can imagine good reasons why > we'd want to use some other file descriptors. Yes, it should in many cases not be stdin/stdout. The standard output and error are polluted with log messages, and stdin should likely be closed or empty to avoid Emacs trying to read from it. It should definitely be possible to create a "magic" pipe process (similar to the "magic network process" created for systemd socket activation) that wraps a file descriptor pair passed on the command-line. OTOH, for the case at hand using stdout/stderr seems right: the error messages are printed there, and the parent Emacs process can parse them. Or do you suggest sending the error messages in a structured format (e.g. JSON) over the pipe? > > > That would certainly work, but (a) it doesn't really have anything to > > do with sandboxing, so these functions should rather be called > > stdin-read and stdout-write or similar, > > I think "the right thing" would be to represent the parent as a process > object inside the child. I proposed dedicated functions only because > but when it uses stdin/stdout, providing a process object seems awkward > to implement. What would be the difference? It would be a pipe process wrapping some open file descriptor pair in both cases.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Dec 2020 22:22:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 19 17:22:30 2020 Received: from localhost ([127.0.0.1]:43347 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqkcP-0000f7-Tp for submit <at> debbugs.gnu.org; Sat, 19 Dec 2020 17:22:30 -0500 Received: from mail-oi1-f178.google.com ([209.85.167.178]:45776) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kqkcL-0000ep-Fu for 45198 <at> debbugs.gnu.org; Sat, 19 Dec 2020 17:22:28 -0500 Received: by mail-oi1-f178.google.com with SMTP id f132so7149805oib.12 for <45198 <at> debbugs.gnu.org>; Sat, 19 Dec 2020 14:22:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=7FK+JaXW1OyrONduSYQ5jzTOnCY5M6FYqcUMVtM96tY=; b=YFbGtd5yQZ09tm4pTAqh29QRZTHOtGWM8mInlKbivnBJzoIVLzo1a6V5fQgUj5Ndva sZZHUN3vyfTbEXZ+odD7//c1mewYz7MV478hvPZ095nJyesck4Oo+uC42dH5lEQKBmIX kH4KrAk0FhXK+ZjAKHzmbqsNYfsq3oHIzcnPTvI2ivx2GiFtBhlOigEcsyeYbWqT90mq UZRAG5q+lPTaTXApzuS9Sly3+b+CHFa9lN50EJa79tJhRlDT/cMwJxHNdh5JVmEQHrGZ EWZONeysgcAIzFdnBVVfwCr0bNom0yoAcImgrL5+Qfg+Of8uXQjCT5aXUz1LWnhY1esI b4Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=7FK+JaXW1OyrONduSYQ5jzTOnCY5M6FYqcUMVtM96tY=; b=gYQsPHgn4P/P3/GYxSqOJr5qYwoJMrn62zl+PYDRZMh52Eq0dz0SUsvjNTusafPA6l eMeW6SULtCQ40tXlyzdpipCG4Rh+tUMiY8X0QrcH1b/iEvheRlHzKgQdtIw64vfawSHA A2m0f9GLNvmY/7+Jps5F/1BkkXEmojYC+d4polZ5QtyUvVcxskx6Y93Dr7YtBDaXgy+b eX6MJwAWjny2sDKzEtLSXEyi49nFu0EJvAa882jOYgmJcR9O3snCZjtuolxeLX5w+zot juf/SKnIfoUuOQVOadjJ4sxI6daTHX9VTaVcVNho6d/7Z6SeI65K2NjYCZE08Mib0HCk 9Zvw== X-Gm-Message-State: AOAM533dYYPa4MOdXa03nEs+T0wL2+afN803Q9TK53mUGbl4F/r2XwB4 i0dK6nzxQQQVEQK/FkQ/AKpG40PDXAHyUaTy9Bk= X-Google-Smtp-Source: ABdhPJyKSjy2gd7riw9JqRHetIuWcnhXJSHEpufMQ0fte8LA4gNAgiXcgBzDJzhFUd8qakHC1Q3hvAttYajklpeLQp0= X-Received: by 2002:aca:3a02:: with SMTP id h2mr6734079oia.65.1608416539743; Sat, 19 Dec 2020 14:22:19 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> In-Reply-To: <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sat, 19 Dec 2020 23:22:08 +0100 Message-ID: <CAArVCkREr5S=k42mXhW8dMzAtmiv7AG8m5yTSFZ72Bey14=9tw@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: multipart/mixed; boundary="00000000000080b8ad05b6d8a897" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) --00000000000080b8ad05b6d8a897 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Am Mo., 14. Dez. 2020 um 12:05 Uhr schrieb Philipp Stephani <p.stephani2@HIDDEN>: > > >> - This will need someone else doing the implementation. > > > Looks like we already have a volunteer for macOS. > > > For Linux, this shouldn't be that difficult either. The sandbox needs > > > to install a mount namespace that only allows read access to Emacs's > > > installation directory plus any input file and write access to known > > > output files, and enable syscall filters that forbid everything excep= t > > > a list of known-safe syscalls (especially exec). I can take a stab at > > > that, but I can't promise anything ;-) > > > > Looking forward to it. > > > > I've looked into this, and what I'd suggest for now is: > [=E2=80=A6] > 2. Generate appropriate seccomp filters using libseccomp or similar. Here's a patch for this step. --00000000000080b8ad05b6d8a897 Content-Type: text/x-patch; charset="US-ASCII"; name="0002-Add-a-helper-binary-to-create-a-basic-Secure-Computi.patch" Content-Disposition: attachment; filename="0002-Add-a-helper-binary-to-create-a-basic-Secure-Computi.patch" Content-Transfer-Encoding: base64 Content-ID: <f_kiw9o4ra0> X-Attachment-Id: f_kiw9o4ra0 RnJvbSBmNWQyMThlZjM1NGVjMjFkODU2NjI3MTU3MDk0OGQ3YzZiNzc2NjQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CkRh dGU6IFRodSwgMTcgRGVjIDIwMjAgMTE6MjA6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDIvMl0g QWRkIGEgaGVscGVyIGJpbmFyeSB0byBjcmVhdGUgYSBiYXNpYyBTZWN1cmUgQ29tcHV0aW5nCiBm aWx0ZXIuCgpUaGUgYmluYXJ5IHVzZXMgdGhlICdzZWNjb21wJyBoZWxwZXIgbGlicmFyeS4gIFRo ZSBsaWJyYXJ5IGlzbid0Cm5lZWRlZCB0byBsb2FkIHRoZSBnZW5lcmF0ZWQgU2VjdXJlIENvbXB1 dGluZyBmaWx0ZXIuCgoqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yICdzZWNjb21wJyBoZWFkZXIg YW5kIGxpYnJhcnkuCgoqIGxpYi1zcmMvc2VjY29tcC1maWx0ZXIuYzogTmV3IGhlbHBlciBiaW5h cnkgdG8gZ2VuZXJhdGUgYSBnZW5lcmljClNlY3VyZSBDb21wdXRpbmcgZmlsdGVyIGZvciBHTlUv TGludXguCgoqIGxpYi1zcmMvTWFrZWZpbGUuaW4gKERPTlRfSU5TVEFMTCk6IEFkZCAnc2VjY29t cC1maWx0ZXInIGhlbHBlcgpiaW5hcnkgaWYgcG9zc2libGUuCihhbGwpOiBBZGQgU2VjdXJlIENv bXB1dGluZyBmaWx0ZXIgZmlsZSBpZiBwb3NzaWJsZS4KKHNlY2NvbXAtZmlsdGVyJChFWEVFWFQp KTogQ29tcGlsZSBoZWxwZXIgYmluYXJ5Lgooc2VjY29tcC1maWx0ZXIuYnBmIHNlY2NvbXAtZmls dGVyLnBmYyk6IEdlbmVyYXRlIGZpbHRlciBmaWxlcy4KCiogdGVzdC9zcmMvZW1hY3MtdGVzdHMu ZWwgKGVtYWNzLXRlc3RzL3NlY2NvbXAvYWxsb3dzLXN0ZG91dCkKKGVtYWNzLXRlc3RzL3NlY2Nv bXAvZm9yYmlkcy1zdWJwcm9jZXNzKTogTmV3IHVuaXQgdGVzdHMuCgoqIHRlc3QvTWFrZWZpbGUu aW4gKHNyYy9lbWFjcy10ZXN0cy5sb2cpOiBBZGQgZGVwZW5kZW5jeSBvbiB0aGUgaGVscGVyCmJp bmFyeS4KLS0tCiAuZ2l0aWdub3JlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA1ICsKIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUg KwogbGliLXNyYy9NYWtlZmlsZS5pbiAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOSArKwog bGliLXNyYy9zZWNjb21wLWZpbHRlci5jICAgICAgICAgICAgICAgICAgICB8IDMwMyArKysrKysr KysrKysrKysrKysrKwogdGVzdC9NYWtlZmlsZS5pbiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArCiB0ZXN0L3NyYy9lbWFjcy1yZXNvdXJjZXMvc2VjY29tcC1maWx0ZXIuYnBmIHwg ICAxICsKIHRlc3Qvc3JjL2VtYWNzLXRlc3RzLmVsICAgICAgICAgICAgICAgICAgICAgfCAgNDQg KysrCiA3IGZpbGVzIGNoYW5nZWQsIDM3OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2 NDQgbGliLXNyYy9zZWNjb21wLWZpbHRlci5jCiBjcmVhdGUgbW9kZSAxMjAwMDAgdGVzdC9zcmMv ZW1hY3MtcmVzb3VyY2VzL3NlY2NvbXAtZmlsdGVyLmJwZgoKZGlmZiAtLWdpdCBhLy5naXRpZ25v cmUgYi8uZ2l0aWdub3JlCmluZGV4IGJmN2U5MzQ5ODEuLjhjOGIxZjc1ODQgMTAwNjQ0Ci0tLSBh Ly5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMTg3LDYgKzE4Nyw3IEBAIGxpYi1zcmMv bWFrZS1kb2NmaWxlCiBsaWItc3JjL21ha2UtZmluZ2VycHJpbnQKIGxpYi1zcmMvbW92ZW1haWwK IGxpYi1zcmMvcHJvZmlsZQorbGliLXNyYy9zZWNjb21wLWZpbHRlcgogbGliLXNyYy90ZXN0LWRp c3RyaWIKIGxpYi1zcmMvdXBkYXRlLWdhbWUtc2NvcmUKIG5leHRzdGVwL0NvY29hL0VtYWNzLmJh c2UvQ29udGVudHMvSW5mby5wbGlzdApAQCAtMjk4LDMgKzI5OSw3IEBAIG50L2VtYWNzLnJjCiBu dC9lbWFjc2NsaWVudC5yYwogc3JjL2dkYi5pbmkKIC92YXIvCisKKyMgU2VjY29tcCBmaWx0ZXIg ZmlsZXMuCitsaWItc3JjL3NlY2NvbXAtZmlsdGVyLmJwZgorbGliLXNyYy9zZWNjb21wLWZpbHRl ci5wZmMKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCAwODdk ZDY3ZTE4Li5jYjY5OGUzNGZlIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmln dXJlLmFjCkBAIC00MTg2LDYgKzQxODYsMTEgQEAgQUNfREVGVU4KIAogQUNfQ0hFQ0tfSEVBREVS UyhbbGludXgvc2VjY29tcC5oXSkKIAorTElCU0VDQ09NUD0KK0FDX0NIRUNLX0hFQURFUihbc2Vj Y29tcC5oXSwKKyAgW0FDX0NIRUNLX0xJQihbc2VjY29tcF0sIFtzZWNjb21wX2luaXRdLCBbTElC U0VDQ09NUD0tbHNlY2NvbXBdKV0pCitBQ19TVUJTVChbTElCU0VDQ09NUF0pCisKIE9MRF9MSUJT PSRMSUJTCiBMSUJTPSIkTElCX1BUSFJFQUQgJExJQl9NQVRIICRMSUJTIgogQUNfQ0hFQ0tfRlVO Q1MoYWNjZXB0NCBmY2hkaXIgZ2V0aG9zdG5hbWUgXApkaWZmIC0tZ2l0IGEvbGliLXNyYy9NYWtl ZmlsZS5pbiBiL2xpYi1zcmMvTWFrZWZpbGUuaW4KaW5kZXggYTJkMjdlYWIwMC4uNzJhOTgwZTRk ZSAxMDA2NDQKLS0tIGEvbGliLXNyYy9NYWtlZmlsZS5pbgorKysgYi9saWItc3JjL01ha2VmaWxl LmluCkBAIC0yMDksNiArMjA5LDEyIEBAIExJQl9FQUNDRVNTPQogIyMgZW1wdHkgb3IgLWx3c29j azIgZm9yIE1pbkdXCiBMSUJfV1NPQ0szMj1ATElCX1dTT0NLMzJACiAKK0xJQlNFQ0NPTVA9QExJ QlNFQ0NPTVBACisKK2lmbmVxICgkKExJQlNFQ0NPTVApLCkKK0RPTlRfSU5TVEFMTCArPSBzZWNj b21wLWZpbHRlciQoRVhFRVhUKQorZW5kaWYKKwogIyMgRXh0cmEgbGlicmFyaWVzIHRvIHVzZSB3 aGVuIGxpbmtpbmcgbW92ZW1haWwuCiBMSUJTX01PVkUgPSAkKExJQlNfTUFJTCkgJChLUkI0TElC KSAkKERFU0xJQikgJChLUkI1TElCKSAkKENSWVBUT0xJQikgXAogICAgICAgICAgICAgJChDT01f RVJSTElCKSAkKExJQkhFU0lPRCkgJChMSUJSRVNPTFYpICQoTElCX1dTT0NLMzIpCkBAIC0yMzgs NiArMjQ0LDEwIEBAIGNvbmZpZ19oID0KIAogYWxsOiAke0VYRV9GSUxFU30gJHtTQ1JJUFRTfQog CitpZm5lcSAoJChMSUJTRUNDT01QKSwpCithbGw6IHNlY2NvbXAtZmlsdGVyLmJwZgorZW5kaWYK KwogLlBIT05ZOiBhbGwgbmVlZC1ibGVzc21haWwgbWF5YmUtYmxlc3NtYWlsCiAKIExPQURMSUJF UyA9IC4uL2xpYi9saWJnbnUuYSAkKExJQlNfU1lTVEVNKQpAQCAtNDIwLDQgKzQzMCwxMyBAQCB1 cGRhdGUtZ2FtZS1zY29yZSR7RVhFRVhUfToKIGVtYWNzY2xpZW50LnJlczogLi4vbnQvZW1hY3Nj bGllbnQucmMgJChOVElOQykvLi4vaWNvbnMvZW1hY3MuaWNvCiAJJChBTV9WX1JDKSQoV0lORFJF UykgLU8gY29mZiAtLWluY2x1ZGUtZGlyPSQoTlRJTkMpLy4uIC1vICRAICQ8CiAKK2lmbmVxICgk KExJQlNFQ0NPTVApLCkKK3NlY2NvbXAtZmlsdGVyJChFWEVFWFQpOiAkKHNyY2Rpcikvc2VjY29t cC1maWx0ZXIuYyAkKGNvbmZpZ19oKQorCSQoQU1fVl9DQ0xEKSQoQ0MpICQoQUxMX0NGTEFHUykg JDwgJChMSUJTRUNDT01QKSAtbyAkQAorCitzZWNjb21wLWZpbHRlci5icGYgc2VjY29tcC1maWx0 ZXIucGZjOiBzZWNjb21wLWZpbHRlciQoRVhFRVhUKQorCSQoQU1fVl9HRU4pLi9zZWNjb21wLWZp bHRlciQoRVhFRVhUKSBcCisJICBzZWNjb21wLWZpbHRlci5icGYgc2VjY29tcC1maWx0ZXIucGZj CitlbmRpZgorCiAjIyBNYWtlZmlsZSBlbmRzIGhlcmUuCmRpZmYgLS1naXQgYS9saWItc3JjL3Nl Y2NvbXAtZmlsdGVyLmMgYi9saWItc3JjL3NlY2NvbXAtZmlsdGVyLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZTBmZWEwYjQyMQotLS0gL2Rldi9udWxsCisrKyBiL2xp Yi1zcmMvc2VjY29tcC1maWx0ZXIuYwpAQCAtMCwwICsxLDMwMyBAQAorLyogR2VuZXJhdGUgYSBT ZWN1cmUgQ29tcHV0aW5nIGZpbHRlciBkZWZpbml0aW9uIGZpbGUuCisKK0NvcHlyaWdodCAoQykg MjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworVGhpcyBmaWxlIGlzIHBhcnQg b2YgR05VIEVtYWNzLgorCitHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUKK3Rlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUK K0ZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyCit2ZXJzaW9uLgorCitHTlUgRW1hY3MgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCitXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBCitQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKK1lvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdp dGggR05VCitFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLworCisvKiBUaGlzIHByb2dyYW0gY3JlYXRlcyBhIHNtYWxsIFNlY3VyZSBDb21wdXRp bmcgZmlsdGVyIHVzYWJsZSBmb3IgYSB0eXBpY2FsCittaW5pbWFsIEVtYWNzIHNhbmRib3guICBT ZWUgdGhlIG1hbiBwYWdlIGZvciBgc2VjY29tcCcgZm9yIGRldGFpbHMgYWJvdXQgU2VjdXJlCitD b21wdXRpbmcgZmlsdGVycy4gIFRoaXMgcHJvZ3JhbSByZXF1aXJlcyB0aGUgYGxpYnNlY2NvbXAn IGxpYnJhcnkuICBIb3dldmVyLAordGhlIHJlc3VsdGluZyBmaWx0ZXIgZmlsZSByZXF1aXJlcyBv bmx5IGEgTGludXgga2VybmVsIHN1cHBvcnRpbmcgdGhlIFNlY3VyZQorQ29tcHV0aW5nIGV4dGVu c2lvbi4KKworVXNhZ2U6CisKKyAgc2VjY29tcC1maWx0ZXIgb3V0LmJwZiBvdXQucGZjCisKK1Ro aXMgd3JpdGVzIHRoZSByYXcgYHN0cnVjdCBzb2NrX2ZpbHRlcicgYXJyYXkgdG8gb3V0LmJwZiBh bmQgYSBodW1hbi1yZWFkYWJsZQorcmVwcmVzZW50YXRpb24gdG8gb3V0LnBmYy4gICovCisKKyNp bmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8bGltaXRz Lmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUg PHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNp bmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1ZGUgPHN5 cy9wcmN0bC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+ CisjaW5jbHVkZSA8bGludXgvZnV0ZXguaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUg PHNjaGVkLmg+CisjaW5jbHVkZSA8c2VjY29tcC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisj aW5jbHVkZSAidmVyaWZ5LmgiCisKK3N0YXRpYyBBVFRSSUJVVEVfRk9STUFUX1BSSU5URiAoMiwg MykgX05vcmV0dXJuIHZvaWQKK2ZhaWwgKGludCBlcnJvciwgY29uc3QgY2hhciAqZm9ybWF0LCAu Li4pCit7CisgIHZhX2xpc3QgYXA7CisgIHZhX3N0YXJ0IChhcCwgZm9ybWF0KTsKKyAgaWYgKGVy cm9yID09IDApCisgICAgdmZwcmludGYgKHN0ZGVyciwgZm9ybWF0LCBhcCk7CisgIGVsc2UKKyAg ICB7CisgICAgICBjaGFyIGJ1ZmZlclsxMDAwXTsKKyAgICAgIHZzbnByaW50ZiAoYnVmZmVyLCBz aXplb2YgYnVmZmVyLCBmb3JtYXQsIGFwKTsKKyAgICAgIGVycm5vID0gZXJyb3I7CisgICAgICBw ZXJyb3IgKGJ1ZmZlcik7CisgICAgfQorICB2YV9lbmQgKGFwKTsKKyAgZmZsdXNoIChOVUxMKTsK KyAgZXhpdCAoRVhJVF9GQUlMVVJFKTsKK30KKworLyogVGhpcyBiaW5hcnkgaXMgdHJpdmlhbCwg c28gd2UgdXNlIGEgc2luZ2xlIGdsb2JhbCBmaWx0ZXIgY29udGV4dCBvYmplY3QgdGhhdAorICAg d2UgcmVsZWFzZSB1c2luZyBgYXRleGl0Jy4gICovCisKK3N0YXRpYyBzY21wX2ZpbHRlcl9jdHgg Y3R4OworCitzdGF0aWMgdm9pZAorcmVsZWFzZV9jb250ZXh0ICh2b2lkKQoreworICBzZWNjb21w X3JlbGVhc2UgKGN0eCk7Cit9CisKKy8qIFdyYXBwZXIgZnVuY3Rpb25zIGFuZCBtYWNyb3MgZm9y IGxpYnNlY2NvbXAgZnVuY3Rpb25zLiAgV2UgZXhpdCBpbW1lZGlhdGVseQorICAgdXBvbiBhbnkg ZXJyb3IgdG8gYXZvaWQgZXJyb3IgY2hlY2tpbmcgbm9pc2UuICAqLworCitzdGF0aWMgdm9pZAor c2V0X2F0dHJpYnV0ZSAoZW51bSBzY21wX2ZpbHRlcl9hdHRyIGF0dHIsIHVpbnQzMl90IHZhbHVl KQoreworICBpbnQgc3RhdHVzID0gc2VjY29tcF9hdHRyX3NldCAoY3R4LCBhdHRyLCB2YWx1ZSk7 CisgIGlmIChzdGF0dXMgPCAwKQorICAgIGZhaWwgKC1zdGF0dXMsICJzZWNjb21wX2F0dHJfc2V0 IChjdHgsICV1LCAldSkiLCBhdHRyLCB2YWx1ZSk7Cit9CisKKy8qIExpa2UgYHNlY2NvbXBfcnVs ZV9hZGQgKEFDVElPTiwgU1lTQ0FMTCwgLi4uKScsIGV4Y2VwdCB0aGF0IHlvdSBkb24ndCBoYXZl IHRvCisgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY29tcGFyYXRvciBhcmd1bWVudHMsIGFuZCBh bnkgZmFpbHVyZSB3aWxsIGV4aXQgdGhlCisgICBwcm9jZXNzLiAgKi8KKworI2RlZmluZSBSVUxF KGFjdGlvbiwgc3lzY2FsbCwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgY29uc3Qgc3Ry dWN0IHNjbXBfYXJnX2NtcCBhcmdfYXJyYXlbXSA9IHtfX1ZBX0FSR1NfX307ICAgICAgICAgICAg XAorICAgICAgZW51bSB7IGFyZ19jbnQgPSBzaXplb2YgYXJnX2FycmF5IC8gc2l6ZW9mICphcmdf YXJyYXkgfTsgICAgICAgICAgXAorICAgICAgaW50IHN0YXR1cyA9IHNlY2NvbXBfcnVsZV9hZGRf YXJyYXkgKGN0eCwgKGFjdGlvbiksIChzeXNjYWxsKSwgICAgXAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ19jbnQsIGFyZ19hcnJheSk7ICAgICAgICAgXAor ICAgICAgaWYgKHN0YXR1cyA8IDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICBmYWlsICgtc3RhdHVzLCAic2VjY29tcF9ydWxlX2Fk ZF9hcnJheSAoJXMsICVzLCAlZCwgeyVzfSkiLAlcCisJICAgICAgI2FjdGlvbiwgI3N5c2NhbGws IGFyZ19jbnQsICNfX1ZBX0FSR1NfXyk7CQlcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHdoaWxlIChm YWxzZSkKKworc3RhdGljIHZvaWQKK2V4cG9ydF9maWx0ZXIgKGNvbnN0IGNoYXIgKmZpbGUsIGlu dCAoKmZ1bmN0aW9uKSAoY29uc3Qgc2NtcF9maWx0ZXJfY3R4LCBpbnQpLAorICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgaW50IGZkID0gVEVNUF9GQUlMVVJFX1JFVFJZICgK KyAgICBvcGVuIChmaWxlLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX1RSVU5DIHwgT19CSU5BUlkg fCBPX0NMT0VYRUMsIDA2NDQpKTsKKyAgaWYgKGZkIDwgMCkKKyAgICBmYWlsIChlcnJubywgIm9w ZW4gJXMiLCBmaWxlKTsKKyAgaW50IHN0YXR1cyA9IGZ1bmN0aW9uIChjdHgsIGZkKTsKKyAgaWYg KHN0YXR1cyA8IDApCisgICAgZmFpbCAoLXN0YXR1cywgIiVzIiwgbmFtZSk7CisgIGlmIChjbG9z ZSAoZmQpICE9IDApCisgICAgZmFpbCAoZXJybm8sICJjbG9zZSIpOworfQorCisjZGVmaW5lIEVY UE9SVF9GSUxURVIoZmlsZSwgZnVuY3Rpb24pIFwKKyAgZXhwb3J0X2ZpbHRlciAoKGZpbGUpLCAo ZnVuY3Rpb24pLCAjZnVuY3Rpb24pCisKK2ludAorbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQoreworICBpZiAoYXJnYyAhPSAzKQorICAgIGZhaWwgKDAsICJ1c2FnZTogJXMgb3V0LmJwZiBv dXQucGZjIiwgYXJndlswXSk7CisKKyAgLyogQW55IHVuaGFuZGxlZCBzeXNjYWxsIHNob3VsZCBh Ym9ydCB0aGUgRW1hY3MgcHJvY2Vzcy4gICovCisgIGN0eCA9IHNlY2NvbXBfaW5pdCAoU0NNUF9B Q1RfS0lMTF9QUk9DRVNTKTsKKyAgaWYgKGN0eCA9PSBOVUxMKQorICAgIGZhaWwgKDAsICJzZWNj b21wX2luaXQiKTsKKyAgYXRleGl0IChyZWxlYXNlX2NvbnRleHQpOworCisgIC8qIFdlIHdhbnQg dG8gYWJvcnQgaW1tZWRpYXRlbHkgaWYgdGhlIGFyY2hpdGVjdHVyZSBpcyB1bmtub3duLiAgKi8K KyAgc2V0X2F0dHJpYnV0ZSAoU0NNUF9GTFRBVFJfQUNUX0JBREFSQ0gsIFNDTVBfQUNUX0tJTExf UFJPQ0VTUyk7CisgIHNldF9hdHRyaWJ1dGUgKFNDTVBfRkxUQVRSX0NUTF9OTlAsIDEpOworICBz ZXRfYXR0cmlidXRlIChTQ01QX0ZMVEFUUl9DVExfVFNZTkMsIDEpOworICBzZXRfYXR0cmlidXRl IChTQ01QX0ZMVEFUUl9DVExfTE9HLCAwKTsKKworICB2ZXJpZnkgKENIQVJfQklUID09IDgpOwor ICB2ZXJpZnkgKHNpemVvZiAoaW50KSA9PSA0ICYmIElOVF9NSU4gPT0gSU5UMzJfTUlOICYmIElO VF9NQVggPT0gSU5UMzJfTUFYKTsKKyAgdmVyaWZ5IChzaXplb2YgKHZvaWQgKikgPT0gOCk7Cisg IHZlcmlmeSAoKHVpbnRwdHJfdCkgTlVMTCA9PSAwKTsKKworICAvKiBBbGxvdyBhIGNsZWFuIGV4 aXQuICAqLworICBSVUxFIChTQ01QX0FDVF9BTExPVywgU0NNUF9TWVMgKGV4aXQpKTsKKyAgUlVM RSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTIChleGl0X2dyb3VwKSk7CisKKyAgLyogQWxsb3cg YG1tYXAnIGFuZCBmcmllbmRzLiAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGR5bmFtaWMgbG9hZGlu ZywgcmVhZGluZworICAgICB0aGUgcG9ydGFibGUgZHVtcCBmaWxlLCBhbmQgdGhyZWFkIGNyZWF0 aW9uLiAgV2UgZG9uJ3QgYWxsb3cgcGFnZXMgdG8gYmUKKyAgICAgYm90aCB3cml0YWJsZSBhbmQg ZXhlY3V0YWJsZS4gICovCisgIHZlcmlmeSAoTUFQX1BSSVZBVEUgIT0gMCk7CisgIHZlcmlmeSAo TUFQX1NIQVJFRCAhPSAwKTsKKyAgUlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTIChtbWFw KSwKKyAgICAgICAgU0NNUF9BMl8zMiAoU0NNUF9DTVBfTUFTS0VEX0VRLCB+KFBST1RfTk9ORSB8 IFBST1RfUkVBRCB8IFBST1RfV1JJVEUpKSwKKyAgICAgICAgLyogT25seSBzdXBwb3J0IGtub3du IGZsYWdzLiAgTUFQX0RFTllXUklURSBpcyBpZ25vcmVkLCBidXQgc29tZQorICAgICAgICAgICB2 ZXJzaW9ucyBvZiB0aGUgZHluYW1pYyBsb2FkZXIgc3RpbGwgdXNlIGl0LiAgQWxzbyBhbGxvdyBh bGxvY2F0aW5nCisgICAgICAgICAgIHRocmVhZCBzdGFja3MuICAqLworICAgICAgICBTQ01QX0Ez XzMyIChTQ01QX0NNUF9NQVNLRURfRVEsCisgICAgICAgICAgICAgICAgICAgIH4oTUFQX1BSSVZB VEUgfCBNQVBfRklMRSB8IE1BUF9BTk9OWU1PVVMgfCBNQVBfRklYRUQKKyAgICAgICAgICAgICAg ICAgICAgICB8IE1BUF9ERU5ZV1JJVEUgfCBNQVBfU1RBQ0sgfCBNQVBfTk9SRVNFUlZFKSwKKyAg ICAgICAgICAgICAgICAgICAgMCkpOworICBSVUxFIChTQ01QX0FDVF9BTExPVywgU0NNUF9TWVMg KG1tYXApLAorICAgICAgICBTQ01QX0EyXzMyIChTQ01QX0NNUF9NQVNLRURfRVEsIH4oUFJPVF9O T05FIHwgUFJPVF9SRUFEIHwgUFJPVF9FWEVDKSksCisgICAgICAgIC8qIE9ubHkgc3VwcG9ydCBr bm93biBmbGFncy4gIE1BUF9ERU5ZV1JJVEUgaXMgaWdub3JlZCwgYnV0IHNvbWUKKyAgICAgICAg ICAgdmVyc2lvbnMgb2YgdGhlIGR5bmFtaWMgbG9hZGVyIHN0aWxsIHVzZSBpdC4gKi8KKyAgICAg ICAgU0NNUF9BM18zMiAoU0NNUF9DTVBfTUFTS0VEX0VRLAorICAgICAgICAgICAgICAgICAgICB+ KE1BUF9QUklWQVRFIHwgTUFQX0FOT05ZTU9VUyB8IE1BUF9GSVhFRCB8IE1BUF9ERU5ZV1JJVEUp LAorICAgICAgICAgICAgICAgICAgICAwKSk7CisgIFJVTEUgKFNDTVBfQUNUX0FMTE9XLCBTQ01Q X1NZUyAobXVubWFwKSk7CisgIFJVTEUgKFNDTVBfQUNUX0FMTE9XLCBTQ01QX1NZUyAobXByb3Rl Y3QpLAorCS8qIERvbid0IGFsbG93IG1ha2luZyBwYWdlcyBleGVjdXRhYmxlLiAgKi8KKyAgICAg ICAgU0NNUF9BMl8zMiAoU0NNUF9DTVBfTUFTS0VEX0VRLCB+KFBST1RfTk9ORSB8IFBST1RfUkVB RCB8IFBST1RfV1JJVEUpLAorICAgICAgICAgICAgICAgICAgICAwKSk7CisKKyAgLyogRnV0ZXhl cyBhcmUgdXNlZCBldmVyeXdoZXJlLiAgKi8KKyAgUlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBf U1lTIChmdXRleCksCisgICAgICAgIFNDTVBfQTFfMzIgKFNDTVBfQ01QX0VRLCBGVVRFWF9XQUtF X1BSSVZBVEUpKTsKKworICAvKiBBbGxvdyBiYXNpYyBkeW5hbWljIG1lbW9yeSBtYW5hZ2VtZW50 LiAgKi8KKyAgUlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTIChicmspKTsKKworICAvKiBB bGxvdyBzb21lIHN0YXR1cyBpbnF1aXJpZXMuICAqLworICBSVUxFIChTQ01QX0FDVF9BTExPVywg U0NNUF9TWVMgKHVuYW1lKSk7CisgIFJVTEUgKFNDTVBfQUNUX0FMTE9XLCBTQ01QX1NZUyAoZ2V0 dWlkKSk7CisgIFJVTEUgKFNDTVBfQUNUX0FMTE9XLCBTQ01QX1NZUyAoZ2V0ZXVpZCkpOworICBS VUxFIChTQ01QX0FDVF9BTExPVywgU0NNUF9TWVMgKGdldHBpZCkpOworICBSVUxFIChTQ01QX0FD VF9BTExPVywgU0NNUF9TWVMgKGdldHBncnApKTsKKworICAvKiBBbGxvdyBvcGVyYXRpb25zIG9u IG9wZW4gZmlsZSBkZXNjcmlwdG9ycy4gIEZpbGUgZGVzY3JpcHRvcnMgYXJlCisgICAgIGNhcGFi aWxpdGllcywgYW5kIG9wZXJhdGluZyBvbiB0aGVtIHNob3VsZG4ndCBjYXVzZSBzZWN1cml0eSBp c3N1ZXMuICAqLworICBSVUxFIChTQ01QX0FDVF9BTExPVywgU0NNUF9TWVMgKHJlYWQpKTsKKyAg UlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTICh3cml0ZSkpOworICBSVUxFIChTQ01QX0FD VF9BTExPVywgU0NNUF9TWVMgKGNsb3NlKSk7CisgIFJVTEUgKFNDTVBfQUNUX0FMTE9XLCBTQ01Q X1NZUyAobHNlZWspKTsKKyAgUlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTIChkdXApKTsK KyAgUlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTIChkdXAyKSk7CisgIFJVTEUgKFNDTVBf QUNUX0FMTE9XLCBTQ01QX1NZUyAoZnN0YXQpKTsKKworICAvKiBBbGxvdyByZWFkIG9wZXJhdGlv bnMgb24gdGhlIGZpbGVzeXN0ZW0uICBJZiBuZWNlc3NhcnksIHRoZXNlIHNob3VsZCBiZQorICAg ICBmdXJ0aGVyIHJlc3RyaWN0ZWQgdXNpbmcgbW91bnQgbmFtZXNwYWNlcy4gICovCisgIFJVTEUg KFNDTVBfQUNUX0FMTE9XLCBTQ01QX1NZUyAoYWNjZXNzKSk7CisgIFJVTEUgKFNDTVBfQUNUX0FM TE9XLCBTQ01QX1NZUyAoZmFjY2Vzc2F0KSk7CisgIFJVTEUgKFNDTVBfQUNUX0FMTE9XLCBTQ01Q X1NZUyAoc3RhdCkpOworICBSVUxFIChTQ01QX0FDVF9BTExPVywgU0NNUF9TWVMgKHN0YXQ2NCkp OworICBSVUxFIChTQ01QX0FDVF9BTExPVywgU0NNUF9TWVMgKGxzdGF0KSk7CisgIFJVTEUgKFND TVBfQUNUX0FMTE9XLCBTQ01QX1NZUyAobHN0YXQ2NCkpOworICBSVUxFIChTQ01QX0FDVF9BTExP VywgU0NNUF9TWVMgKGZzdGF0YXQ2NCkpOworICBSVUxFIChTQ01QX0FDVF9BTExPVywgU0NNUF9T WVMgKG5ld2ZzdGF0YXQpKTsKKyAgUlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTIChyZWFk bGluaykpOworICBSVUxFIChTQ01QX0FDVF9BTExPVywgU0NNUF9TWVMgKHJlYWRsaW5rYXQpKTsK KyAgUlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTIChnZXRjd2QpKTsKKworICAvKiBBbGxv dyBvcGVuaW5nIGZpbGVzLCBhc3N1bWluZyB0aGV5IGFyZSBvbmx5IG9wZW5lZCBmb3IgcmVhZGlu Zy4gICovCisgIHZlcmlmeSAoT19XUk9OTFkgIT0gMCk7CisgIHZlcmlmeSAoT19SRFdSICE9IDAp OworICB2ZXJpZnkgKE9fQ1JFQVQgIT0gMCk7CisgIFJVTEUgKFNDTVBfQUNUX0FMTE9XLCBTQ01Q X1NZUyAob3BlbiksCisgICAgICAgIFNDTVBfQTFfMzIgKFNDTVBfQ01QX01BU0tFRF9FUSwKKyAg ICAgICAgICAgICAgICAgICAgfihPX1JET05MWSB8IE9fQklOQVJZIHwgT19DTE9FWEVDIHwgT19Q QVRIIHwgT19ESVJFQ1RPUlkpLAorICAgICAgICAgICAgICAgICAgICAwKSk7CisgIFJVTEUgKFND TVBfQUNUX0FMTE9XLCBTQ01QX1NZUyAob3BlbmF0KSwKKyAgICAgICAgU0NNUF9BMl8zMiAoU0NN UF9DTVBfTUFTS0VEX0VRLAorICAgICAgICAgICAgICAgICAgICB+KE9fUkRPTkxZIHwgT19CSU5B UlkgfCBPX0NMT0VYRUMgfCBPX1BBVEggfCBPX0RJUkVDVE9SWSksCisgICAgICAgICAgICAgICAg ICAgIDApKTsKKworICAvKiBBbGxvdyBgdGNnZXRwZ3JwJy4gICovCisgIFJVTEUgKFNDTVBfQUNU X0FMTE9XLCBTQ01QX1NZUyAoaW9jdGwpLCBTQ01QX0EwXzMyIChTQ01QX0NNUF9FUSwgU1RESU5f RklMRU5PKSwKKyAgICAgICAgU0NNUF9BMV8zMiAoU0NNUF9DTVBfRVEsIFRJT0NHUEdSUCkpOwor CisgIC8qIEFsbG93IHJlYWRpbmcgKGJ1dCBub3Qgc2V0dGluZykgZmlsZSBmbGFncy4gICovCisg IFJVTEUgKFNDTVBfQUNUX0FMTE9XLCBTQ01QX1NZUyAoZmNudGwpLCBTQ01QX0ExXzMyIChTQ01Q X0NNUF9FUSwgRl9HRVRGTCkpOworICBSVUxFIChTQ01QX0FDVF9BTExPVywgU0NNUF9TWVMgKGZj bnRsNjQpLCBTQ01QX0ExXzMyIChTQ01QX0NNUF9FUSwgRl9HRVRGTCkpOworCisgIC8qIEFsbG93 IHJlYWRpbmcgcmFuZG9tIG51bWJlcnMgZnJvbSB0aGUga2VybmVsLiAgKi8KKyAgUlVMRSAoU0NN UF9BQ1RfQUxMT1csIFNDTVBfU1lTIChnZXRyYW5kb20pKTsKKworICAvKiBDaGFuZ2luZyB0aGUg dW1hc2sgaXMgdW5jcml0aWNhbC4gICovCisgIFJVTEUgKFNDTVBfQUNUX0FMTE9XLCBTQ01QX1NZ UyAodW1hc2spKTsKKworICAvKiBBbGxvdyBjcmVhdGlvbiBvZiBwaXBlcy4gICovCisgIFJVTEUg KFNDTVBfQUNUX0FMTE9XLCBTQ01QX1NZUyAocGlwZSkpOworICBSVUxFIChTQ01QX0FDVF9BTExP VywgU0NNUF9TWVMgKHBpcGUyKSk7CisKKyAgLyogQWxsb3cgcmVhZGluZyAoYnV0IG5vdCBjaGFu Z2luZykgcmVzb3VyY2UgbGltaXRzLiAgKi8KKyAgUlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBf U1lTIChnZXRybGltaXQpKTsKKyAgUlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTIChwcmxp bWl0NjQpLAorCVNDTVBfQTBfMzIgKFNDTVBfQ01QX0VRLCAwKSAvKiBwaWQgPT0gMCAoY3VycmVu dCBwcm9jZXNzKSAqLywKKyAgICAgICAgU0NNUF9BMl82NCAoU0NNUF9DTVBfRVEsIDApIC8qIG5l d19saW1pdCA9PSBOVUxMICovKTsKKworICAvKiBCbG9jayBjaGFuZ2luZyByZXNvdXJjZSBsaW1p dHMsIGJ1dCBkb24ndCBjcmFzaC4gICovCisgIFJVTEUgKFNDTVBfQUNUX0VSUk5PIChFUEVSTSks IFNDTVBfU1lTIChwcmxpbWl0NjQpLAorICAgICAgICBTQ01QX0EwXzMyIChTQ01QX0NNUF9FUSwg MCkgLyogcGlkID09IDAgKGN1cnJlbnQgcHJvY2VzcykgKi8sCisgICAgICAgIFNDTVBfQTJfNjQg KFNDTVBfQ01QX05FLCAwKSAvKiBuZXdfbGltaXQgIT0gTlVMTCAqLyk7CisKKyAgLyogRW1hY3Mg aW5zdGFsbHMgc2lnbmFsIGhhbmRsZXJzLCB3aGljaCBpcyBoYXJtbGVzcy4gICovCisgIFJVTEUg KFNDTVBfQUNUX0FMTE9XLCBTQ01QX1NZUyAoc2lnYWN0aW9uKSk7CisgIFJVTEUgKFNDTVBfQUNU X0FMTE9XLCBTQ01QX1NZUyAocnRfc2lnYWN0aW9uKSk7CisgIFJVTEUgKFNDTVBfQUNUX0FMTE9X LCBTQ01QX1NZUyAoc2lncHJvY21hc2spKTsKKyAgUlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBf U1lTIChydF9zaWdwcm9jbWFzaykpOworCisgIC8qIEFsbG93IHRpbWVyIHN1cHBvcnQuICAqLwor ICBSVUxFIChTQ01QX0FDVF9BTExPVywgU0NNUF9TWVMgKHRpbWVyX2NyZWF0ZSkpOworICBSVUxF IChTQ01QX0FDVF9BTExPVywgU0NNUF9TWVMgKHRpbWVyZmRfY3JlYXRlKSk7CisKKyAgLyogQWxs b3cgdGhyZWFkIGNyZWF0aW9uLiAgU2VlIHRoZSBOT1RFUyBzZWN0aW9uIGluIHRoZSBtYW51YWwg cGFnZSBmb3IgdGhlCisgICAgIGBjbG9uZScgZnVuY3Rpb24uICAqLworICBSVUxFIChTQ01QX0FD VF9BTExPVywgU0NNUF9TWVMgKGNsb25lKSwKKyAgICAgICAgU0NNUF9BMF82NCAoU0NNUF9DTVBf TUFTS0VEX0VRLAorCQkgICAgLyogRmxhZ3MgbmVlZGVkIHRvIGNyZWF0ZSB0aHJlYWRzLiAgU2Vl IGNyZWF0ZV90aHJlYWQgaW4KKwkJICAgICAgIGxpYmMuICAqLworICAgICAgICAgICAgICAgICAg ICB+KENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8IENMT05FX1NZU1ZTRU0KKyAg ICAgICAgICAgICAgICAgICAgICB8IENMT05FX1NJR0hBTkQgfCBDTE9ORV9USFJFQUQgfCBDTE9O RV9TRVRUTFMKKyAgICAgICAgICAgICAgICAgICAgICB8IENMT05FX1BBUkVOVF9TRVRUSUQgfCBD TE9ORV9DSElMRF9DTEVBUlRJRCksCisgICAgICAgICAgICAgICAgICAgIDApKTsKKyAgUlVMRSAo U0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTIChzaWdhbHRzdGFjaykpOworICBSVUxFIChTQ01QX0FD VF9BTExPVywgU0NNUF9TWVMgKHNldF9yb2J1c3RfbGlzdCkpOworCisgIC8qIEFsbG93IHNldHRp bmcgdGhlIHByb2Nlc3MgbmFtZSBmb3IgbmV3IHRocmVhZHMuICAqLworICBSVUxFIChTQ01QX0FD VF9BTExPVywgU0NNUF9TWVMgKHByY3RsKSwgU0NNUF9BMF8zMiAoU0NNUF9DTVBfRVEsIFBSX1NF VF9OQU1FKSk7CisKKyAgLyogQWxsb3cgc29tZSBldmVudCBoYW5kbGluZyBmdW5jdGlvbnMgdXNl ZCBieSBnbGliLiAgKi8KKyAgUlVMRSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTIChldmVudGZk KSk7CisgIFJVTEUgKFNDTVBfQUNUX0FMTE9XLCBTQ01QX1NZUyAoZXZlbnRmZDIpKTsKKyAgUlVM RSAoU0NNUF9BQ1RfQUxMT1csIFNDTVBfU1lTICh3YWl0NCkpOworICBSVUxFIChTQ01QX0FDVF9B TExPVywgU0NNUF9TWVMgKHBvbGwpKTsKKworICAvKiBEb24ndCBhbGxvdyBjcmVhdGluZyBzb2Nr ZXRzIChuZXR3b3JrIGFjY2VzcyB3b3VsZCBiZSBleHRyZW1lbHkgZGFuZ2Vyb3VzKSwKKyAgICAg YnV0IGFsc28gZG9uJ3QgY3Jhc2guICAqLworICBSVUxFIChTQ01QX0FDVF9FUlJOTyAoRUFDQ0VT KSwgU0NNUF9TWVMgKHNvY2tldCkpOworCisgIEVYUE9SVF9GSUxURVIgKGFyZ3ZbMV0sIHNlY2Nv bXBfZXhwb3J0X2JwZik7CisgIEVYUE9SVF9GSUxURVIgKGFyZ3ZbMl0sIHNlY2NvbXBfZXhwb3J0 X3BmYyk7Cit9CmRpZmYgLS1naXQgYS90ZXN0L01ha2VmaWxlLmluIGIvdGVzdC9NYWtlZmlsZS5p bgppbmRleCA2N2QyMDNkZjI5Li45OWY2OWY3ZmNkIDEwMDY0NAotLS0gYS90ZXN0L01ha2VmaWxl LmluCisrKyBiL3Rlc3QvTWFrZWZpbGUuaW4KQEAgLTI3MSw2ICsyNzEsOCBAQCAkKHRlc3RfbW9k dWxlKTogJCh0ZXN0X21vZHVsZToKIAkgICQoc3JjZGlyKS8uLi9saWIvdGltZXNwZWMuYyAkKHNy Y2RpcikvLi4vbGliL2dldHRpbWUuYwogZW5kaWYKIAorc3JjL2VtYWNzLXRlc3RzLmxvZzogLi4v bGliLXNyYy9zZWNjb21wLWZpbHRlci5jCisKICMjIENoZWNrIHRoYXQgdGhlcmUgaXMgbm8gJ2F1 dG9tYXRlZCcgc3ViZGlyZWN0b3J5LCB3aGljaCB3b3VsZAogIyMgaW5kaWNhdGUgYW4gaW5jb21w bGV0ZSBtZXJnZSBmcm9tIGFuIG9sZGVyIHZlcnNpb24gb2YgRW1hY3Mgd2hlcmUKICMjIHRoZSB0 ZXN0cyB3ZXJlIGFycmFuZ2VkIGRpZmZlcmVudGx5LgpkaWZmIC0tZ2l0IGEvdGVzdC9zcmMvZW1h Y3MtcmVzb3VyY2VzL3NlY2NvbXAtZmlsdGVyLmJwZiBiL3Rlc3Qvc3JjL2VtYWNzLXJlc291cmNl cy9zZWNjb21wLWZpbHRlci5icGYKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAw MC4uYjNkNjAzZDBhZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Qvc3JjL2VtYWNzLXJlc291cmNl cy9zZWNjb21wLWZpbHRlci5icGYKQEAgLTAsMCArMSBAQAorLi4vLi4vLi4vbGliLXNyYy9zZWNj b21wLWZpbHRlci5icGYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90 ZXN0L3NyYy9lbWFjcy10ZXN0cy5lbCBiL3Rlc3Qvc3JjL2VtYWNzLXRlc3RzLmVsCmluZGV4IDI3 OWVjYjIxMGMuLjk1OTljMjY3ODMgMTAwNjQ0Ci0tLSBhL3Rlc3Qvc3JjL2VtYWNzLXRlc3RzLmVs CisrKyBiL3Rlc3Qvc3JjL2VtYWNzLXRlc3RzLmVsCkBAIC0yNSw2ICsyNSw4IEBACiAKIChyZXF1 aXJlICdjbC1saWIpCiAocmVxdWlyZSAnZXJ0KQorKHJlcXVpcmUgJ2VydC14KQorKHJlcXVpcmUg J3N1YnIteCkKIAogKGVydC1kZWZ0ZXN0IGVtYWNzLXRlc3RzL3NlY2NvbXAvYWJzZW50LWZpbGUg KCkKICAgKGxldCAoKGVtYWNzIChleHBhbmQtZmlsZS1uYW1lIGludm9jYXRpb24tbmFtZSBpbnZv Y2F0aW9uLWRpcmVjdG9yeSkpCkBAIC04Myw0ICs4NSw0NiBAQCBlbWFjcy10ZXN0cy9zZWNjb21w L2ludmFsaWQtZmlsZS1zaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICItLXF1aWNrIiAi LS1iYXRjaCIgKGNvbmNhdCAiLS1zZWNjb21wPSIgZmlsdGVyKSkKICAgICAgICAgICAgIDApKSkp KQogCisoZXJ0LWRlZnRlc3QgZW1hY3MtdGVzdHMvc2VjY29tcC9hbGxvd3Mtc3Rkb3V0ICgpCisg IChsZXQgKChlbWFjcyAoZXhwYW5kLWZpbGUtbmFtZSBpbnZvY2F0aW9uLW5hbWUgaW52b2NhdGlv bi1kaXJlY3RvcnkpKQorICAgICAgICAoZmlsdGVyIChlcnQtcmVzb3VyY2UtZmlsZSAic2VjY29t cC1maWx0ZXIuYnBmIikpCisgICAgICAgIChwcm9jZXNzLWVudmlyb25tZW50IG5pbCkpCisgICAg KHNraXAtdW5sZXNzIChmaWxlLWV4ZWN1dGFibGUtcCBlbWFjcykpCisgICAgKHNraXAtdW5sZXNz IChmaWxlLXJlYWRhYmxlLXAgZmlsdGVyKSkKKyAgICA7OyBUaGUgLS1zZWNjb21wIG9wdGlvbiBp cyBwcm9jZXNzZWQgZWFybHksIHdpdGhvdXQgZmlsZW5hbWUgaGFuZGxlcnMuCisgICAgOzsgVGhl cmVmb3JlIHJlbW90ZSBvciBxdW90ZWQgZmlsZW5hbWVzIHdvdWxkbid0IHdvcmsuCisgICAgKHNo b3VsZC1ub3QgKGZpbGUtcmVtb3RlLXAgZmlsdGVyKSkKKyAgICAoY2wtY2FsbGYgZmlsZS1uYW1l LXVucXVvdGUgZmlsdGVyKQorICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgICAobGV0ICgoc3Rh dHVzIChjYWxsLXByb2Nlc3MgZW1hY3MgbmlsIHQgbmlsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIi0tcXVpY2siICItLWJhdGNoIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChjb25jYXQgIi0tc2VjY29tcD0iIGZpbHRlcikKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY29uY2F0ICItLWV2YWw9IiAocHJpbjEtdG8tc3RyaW5nCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcobWVzc2Fn ZSAiSGkiKSkpKSkpCisgICAgICAgIChlcnQtaW5mbyAoKGZvcm1hdCAiUHJvY2VzcyBvdXRwdXQ6 ICVzIiAoYnVmZmVyLXN0cmluZykpKQorICAgICAgICAgIChzaG91bGQgKGVxbCBzdGF0dXMgMCkp KQorICAgICAgICAoc2hvdWxkIChlcXVhbCAoc3RyaW5nLXRyaW0gKGJ1ZmZlci1zdHJpbmcpKSAi SGkiKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBlbWFjcy10ZXN0cy9zZWNjb21wL2ZvcmJpZHMtc3Vi cHJvY2VzcyAoKQorICAobGV0ICgoZW1hY3MgKGV4cGFuZC1maWxlLW5hbWUgaW52b2NhdGlvbi1u YW1lIGludm9jYXRpb24tZGlyZWN0b3J5KSkKKyAgICAgICAgKGZpbHRlciAoZXJ0LXJlc291cmNl LWZpbGUgInNlY2NvbXAtZmlsdGVyLmJwZiIpKQorICAgICAgICAocHJvY2Vzcy1lbnZpcm9ubWVu dCBuaWwpKQorICAgIChza2lwLXVubGVzcyAoZmlsZS1leGVjdXRhYmxlLXAgZW1hY3MpKQorICAg IChza2lwLXVubGVzcyAoZmlsZS1yZWFkYWJsZS1wIGZpbHRlcikpCisgICAgOzsgVGhlIC0tc2Vj Y29tcCBvcHRpb24gaXMgcHJvY2Vzc2VkIGVhcmx5LCB3aXRob3V0IGZpbGVuYW1lIGhhbmRsZXJz LgorICAgIDs7IFRoZXJlZm9yZSByZW1vdGUgb3IgcXVvdGVkIGZpbGVuYW1lcyB3b3VsZG4ndCB3 b3JrLgorICAgIChzaG91bGQtbm90IChmaWxlLXJlbW90ZS1wIGZpbHRlcikpCisgICAgKGNsLWNh bGxmIGZpbGUtbmFtZS11bnF1b3RlIGZpbHRlcikKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAg ICAgKGxldCAoKHN0YXR1cworICAgICAgICAgICAgIChjYWxsLXByb2Nlc3MKKyAgICAgICAgICAg ICAgZW1hY3MgbmlsIHQgbmlsCisgICAgICAgICAgICAgICItLXF1aWNrIiAiLS1iYXRjaCIKKyAg ICAgICAgICAgICAgKGNvbmNhdCAiLS1zZWNjb21wPSIgZmlsdGVyKQorICAgICAgICAgICAgICAo Y29uY2F0ICItLWV2YWw9IiAocHJpbjEtdG8tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBgKGNhbGwtcHJvY2VzcyAsZW1hY3MgbmlsIG5pbCBuaWwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLXZlcnNpb24iKSkpKSkpCisg ICAgICAgIChlcnQtaW5mbyAoKGZvcm1hdCAiUHJvY2VzcyBvdXRwdXQ6ICVzIiAoYnVmZmVyLXN0 cmluZykpKQorICAgICAgICAgIChzaG91bGQtbm90IChlcWwgc3RhdHVzIDApKSkpKSkpCisKIDs7 OyBlbWFjcy10ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuMjkuMi43MjkuZzQ1ZGFmODc3N2QtZ29v ZwoK --00000000000080b8ad05b6d8a897--
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Dec 2020 20:59:44 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 19 15:59:43 2020 Received: from localhost ([127.0.0.1]:43282 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqjKJ-00077d-Be for submit <at> debbugs.gnu.org; Sat, 19 Dec 2020 15:59:43 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:46418) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1kqjKF-00077O-V4 for 45198 <at> debbugs.gnu.org; Sat, 19 Dec 2020 15:59:41 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 8E2C2440326; Sat, 19 Dec 2020 15:59:34 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 494E2440318; Sat, 19 Dec 2020 15:59:33 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1608411573; bh=T6tnhodp8vjKylPsvfQnJcTA9N3RwrVHyI0kw8qqSwY=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=ZFAvZ/JzO2OHsIx71GRVTzPuaVKoAFR0HX7jRZW44hhsBs3GohsqlbAVtt6Nwkutp w7lTSQTQ3TOI2Bjr9fOJUx+fFVCWTxAk3cEa3TXvuqHAVdedG785tAI0QEg2z9vqua aCVnWE8PQqNWhgcTQ6pCaq50mq4Bhb5SksxW70TLAGSFW4OYmhJb2nuhJmXF19AVHX Ff61TWWDpFO2CIFj/WJz1nF8udkE1b6EHSWkU8mS8KMFyCUiAOUBVMyKQ8r4sg3yPJ E+nRpm7EdHZmeZU6b+zLxOWT00dBGo3lxA6dfvjrLjeHKpcgRCWrmv+NVcIbS1BCTz qo0KlHOPGJL8A== Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id E96EC120257; Sat, 19 Dec 2020 15:59:32 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Mattias =?windows-1252?Q?Engdeg=E5rd?= <mattiase@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwvblepv7ex.fsf-monnier+emacs@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> <jwvblepoeuq.fsf-monnier+emacs@HIDDEN> <239166D0-63F2-48CF-AC26-B306B99419BC@HIDDEN> Date: Sat, 19 Dec 2020 16:01:38 -0500 In-Reply-To: <239166D0-63F2-48CF-AC26-B306B99419BC@HIDDEN> ("Mattias =?windows-1252?Q?Engdeg=E5rd=22's?= message of "Sat, 19 Dec 2020 19:46:59 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.073 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Philipp Stephani <p.stephani2@HIDDEN>, =?windows-1252?B?Sm/jbyBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> I must say I don't know what's being discussed here. >> What autoloads? Why do we care? > If a user looks at elisp code that depends on autoloads and the checker > process cannot load those for reasons of sandbox policy or whatnot, there > will be false positives about missing functions. This is fine if we are > phasing out autoloads but as far as I know we're not. I don't understand why it would be different for autoloads than for functions provided by `require`d packages. Also, if we add all the dirs in `load-path` to the set of readable directories (and I do think we want to do that) this should not be an issue, right? Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Dec 2020 19:48:38 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 19 14:48:37 2020 Received: from localhost ([127.0.0.1]:43215 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqiDV-0003MZ-NU for submit <at> debbugs.gnu.org; Sat, 19 Dec 2020 14:48:37 -0500 Received: from mail-il1-f176.google.com ([209.85.166.176]:33921) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <joaotavora@HIDDEN>) id 1kqiDT-0003ML-40 for 45198 <at> debbugs.gnu.org; Sat, 19 Dec 2020 14:48:36 -0500 Received: by mail-il1-f176.google.com with SMTP id x15so5409020ilq.1 for <45198 <at> debbugs.gnu.org>; Sat, 19 Dec 2020 11:48:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=1k6MgMtYS4wnZWFzDZNs7UGxALsIbQszvy+xG3X2kf0=; b=QLvEAPfh2ZjxkkozW2Zn1shm6+Cju34myG7456WYb3M53ZDXGPTXMhRXZGAL826d7t +nM+XX4TrQLlUqdQo3tAZpNCVeF4Bt3LTTU2sqYsixaOTnBY2vQDdH85aKsAbke2umqf 8LnMqfrFIrCANXVln6v7ax+PdNt6REqz1cnkoRhWLPFxQryswUTDNUuGulHyNsVF8q2s H7Bg3BLrIm6gyh06L/HBJciNnOp0oeZv8tsa1hGvwyubzrJxEtKyIUQenIeoOQBX+WqO yDf3npl+uSIJ9BCV1g/B6HpJlnLmtnZlWHjFfcqdBp+/1bS0V4TYaHPF9z6x/3akV5Jo uI/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=1k6MgMtYS4wnZWFzDZNs7UGxALsIbQszvy+xG3X2kf0=; b=Y2tFrkZVSS4Ai8tqw4GIOoE5w11eTkC5aoU3US0tA6E1GvXLND2d2QtbnBilwAG+hU goH4EiQpQTmp8gBsne+Tq0n0s9nVRqnPze64H5EcuZpptdxTA4tbNpY6HeGYt/7ftodu r20WW5MzNQvdvmHXBZ0b2ttg9QIlKU8gAx7F7f8aGuLUSE5HtV5z6gxDaCH/FHthp9GB OkMVKDVmhSZYzpUDJXf8oceMgtCcI/0E2yFrX41kPWnYF0ZMGoWJC6gUygffh+BhJikA LJnskUQHjD1v0hxygUS+o1ozzEC+42HUPOweB8h/MU85AO9XBP9Bn57b6+3m2xpjAfPG 6L0A== X-Gm-Message-State: AOAM531HkgCbhJT7jwAoF7JmM22JJydetRb1pOhQi9ATxb3NmovQovlh U4aOEowFDI+BeJ3G8tv67pM2ZRQ8dDenPUCHdPY= X-Google-Smtp-Source: ABdhPJwjtN2AQ2grz3ohqbL6s+qoxtPWYf4AkUpfgY/NL84oh4c0DZTiOwht4bM04Np9UOv0oHmLplnl+kFE5nIvsUE= X-Received: by 2002:a05:6e02:14ce:: with SMTP id o14mr10335447ilk.9.1608407309339; Sat, 19 Dec 2020 11:48:29 -0800 (PST) MIME-Version: 1.0 References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> <jwvblepoeuq.fsf-monnier+emacs@HIDDEN> <239166D0-63F2-48CF-AC26-B306B99419BC@HIDDEN> In-Reply-To: <239166D0-63F2-48CF-AC26-B306B99419BC@HIDDEN> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> Date: Sat, 19 Dec 2020 19:48:18 +0000 Message-ID: <CALDnm51Z3Kq0b8CLC6kn1=xmn79HBbzs_yuB=0MxHgD=Kz4pPw@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Philipp Stephani <p.stephani2@HIDDEN>, Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) On Sat, Dec 19, 2020 at 6:47 PM Mattias Engdeg=C3=A5rd <mattiase@HIDDEN> w= rote: > > 19 dec. 2020 kl. 19.11 skrev Stefan Monnier <monnier@HIDDEN>: > > > I must say I don't know what's being discussed here. > > What autoloads? Why do we care? > > If a user looks at elisp code that depends on autoloads and the checker p= rocess cannot load those for reasons of sandbox policy or whatnot, there wi= ll be false positives about missing functions. This is fine if we are phasi= ng out autoloads but as far as I know we're not. It would have to depend on autoloads at compilation time. As far as I can tell, that's not extremely common. It's quite more common that things are `require`d and thus `load`ed at compilation time, so if we block that, the Flymake compilation output becomes quite useless in most cases, producing big single error in that first require. Such things can and already do happen with processes that have non-standard load-paths mechanisms, such as one of mine. The only load-path that the Flymake currently sees is the current directory's. I suppose extending that is possible (and it's been in my plans). It's also possibly another "hazard", though one incurred in consciously by the user, whom we may warn via the usual "unsafe local variables" machinery. Jo=C3=A3o
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Dec 2020 18:47:09 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 19 13:47:09 2020 Received: from localhost ([127.0.0.1]:43153 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqhG1-0001q0-DY for submit <at> debbugs.gnu.org; Sat, 19 Dec 2020 13:47:09 -0500 Received: from mail200c50.megamailservers.eu ([91.136.10.210]:46396 helo=mail193c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1kqhFw-0001pn-Bp for 45198 <at> debbugs.gnu.org; Sat, 19 Dec 2020 13:47:08 -0500 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1608403623; bh=6yH/77b5r8un8FFgUxZ7hpZC2k+a0WNZtfDAE8wM4Cc=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=lMm19z10l/Yd+JbzaaSGKjOiEszPTu415J77lNsHzxPCoKAFy6bWaYEnjwOF1AfWE +UcaQqvaO4COwEsdJ8ffglSUF+NQf7lY5GnOBUfI6DaseV/O2br3I3+voIso5IJyK4 HqtV/DjXLmMafB9aHwYfXW1DvftCM50BlnebyyNY= Feedback-ID: mattiase@HIDDEN Received: from stanniol.lan (c-064ae655.032-75-73746f71.bbcust.telenor.se [85.230.74.6]) (authenticated bits=0) by mail193c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0BJIl0Uq009124; Sat, 19 Dec 2020 18:47:02 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> In-Reply-To: <jwvblepoeuq.fsf-monnier+emacs@HIDDEN> Date: Sat, 19 Dec 2020 19:46:59 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <239166D0-63F2-48CF-AC26-B306B99419BC@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> <jwvblepoeuq.fsf-monnier+emacs@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A782F18.5FDE4AA7.0019, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=TYHoSiYh c=1 sm=1 tr=0 a=Ni+dBsiEfW2GqKMPYZim9A==:117 a=Ni+dBsiEfW2GqKMPYZim9A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=iRZporoAAAAA:8 a=9D5SvJBBrBtOuh2ikD8A:9 a=CjuIK1q_8ugA:10 a=NOBgFS-JBQ2l-kSd6-zu:22 X-Origin-Country: SE X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Philipp Stephani <p.stephani2@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) 19 dec. 2020 kl. 19.11 skrev Stefan Monnier <monnier@HIDDEN>: > I must say I don't know what's being discussed here. > What autoloads? Why do we care? If a user looks at elisp code that depends on autoloads and the checker = process cannot load those for reasons of sandbox policy or whatnot, = there will be false positives about missing functions. This is fine if = we are phasing out autoloads but as far as I know we're not.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Dec 2020 18:19:10 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 19 13:19:10 2020 Received: from localhost ([127.0.0.1]:43129 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqgov-00018n-Ed for submit <at> debbugs.gnu.org; Sat, 19 Dec 2020 13:19:10 -0500 Received: from mail-ot1-f53.google.com ([209.85.210.53]:43260) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kqgos-00018F-39 for 45198 <at> debbugs.gnu.org; Sat, 19 Dec 2020 13:19:08 -0500 Received: by mail-ot1-f53.google.com with SMTP id q25so5144883otn.10 for <45198 <at> debbugs.gnu.org>; Sat, 19 Dec 2020 10:19:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=UO+uHMzdtVCuhaWgbdTCxeeCbKdJ5CVPUAN0TpANr3s=; b=M1MAyUrmQbiN8cXCw49fsR9sb3st7nRvSQUNDkELVt5a9d+umt9LrJxwmXU+qWZl+Z iJONl/EUE35P64Cj5kfAH25VRKQILSG8DfF5w+3M8ANS7QFXElzLIy0LGlNViUk8xIei zPqHGCPSMjM//5R1nspj5fNVGklxFTwbSw28Sh1Uoro13aeVSQppaZXmg7zWxgiWYZhg mJaxWZW2pKHdyXzfUuDOO+iVmDKF9OviwXLDo7ox0whQn70syREQdpFNKcVBsFdIhrzB hnuCwQ4xZ3dinhvPLzHbjW5/Rt2gXI5tZwOtTe5OiPqm/yUcQNHwNyBgJcEbFC95TXkJ xrZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=UO+uHMzdtVCuhaWgbdTCxeeCbKdJ5CVPUAN0TpANr3s=; b=OUVgBJatZB0n61KiWgatYCe2SWhC82/RMuz8BgUBluRLddgFRi6sKppFHxzmXgFYGc z6sQSPhukCnFzHts8FW3/90FW9YcO/bkZ2KOv73DBiZXN5Ks14hLWebs69YLc/sES1JV 5bMRxUt7xMiwkFs5VglclT7gcbTK/iCdbBm1IWkddw1kRaLu2L2UXiAI5ZyKKpPz8ino F9I9bBBitQN784fKudyfJ073dQy5UnZP/xo/1A+bDNc8LjxZLwjcgVoDpr+jbAZ4KrtY XXgJVfMw6yGP73LnqHMAwc3zQapq4AyK/lSR5EO8Qi6rYw03CEaTEumoPL6nYSlzkcQv gA+w== X-Gm-Message-State: AOAM530/2Ow0BukvPO0v9uJJMLYfC8FC3Lxm3Y9QnCWtjazxgOKi0c3S 3rG5LrsTjYpM068nqgbD7Grpm++WAer9kl8cn+0= X-Google-Smtp-Source: ABdhPJxThOUH47ZplwyOAd2EaCQalVqgGe/91SaetkFO6b+aCawHG1VCsn9JbOcoMct39a7/MeFHQnqeGgXS1cLeP3w= X-Received: by 2002:a9d:72c4:: with SMTP id d4mr7076971otk.149.1608401940105; Sat, 19 Dec 2020 10:19:00 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> In-Reply-To: <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sat, 19 Dec 2020 19:18:48 +0100 Message-ID: <CAArVCkSiTR6UBT3AcKYOe3Yr8TgizjVBOobF_PDv0JNUySj2CA@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: multipart/mixed; boundary="0000000000004c40a805b6d54284" X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) --0000000000004c40a805b6d54284 Content-Type: text/plain; charset="UTF-8" Am Mo., 14. Dez. 2020 um 12:05 Uhr schrieb Philipp Stephani <p.stephani2@HIDDEN>: > > > >> - This will need someone else doing the implementation. > > > Looks like we already have a volunteer for macOS. > > > For Linux, this shouldn't be that difficult either. The sandbox needs > > > to install a mount namespace that only allows read access to Emacs's > > > installation directory plus any input file and write access to known > > > output files, and enable syscall filters that forbid everything except > > > a list of known-safe syscalls (especially exec). I can take a stab at > > > that, but I can't promise anything ;-) > > > > Looking forward to it. > > > > I've looked into this, and what I'd suggest for now is: > 1. Add a --seccomp=FILE command-line option that loads seccomp filters > from FILE and applies them directly after startup (first thing in > main). Why do this in Emacs? Because that's the easiest way to prevent > execve. When installing a seccomp filter in a separate process, execve > needs to be allowed because otherwise there'd be no way to execute the > Emacs binary. While there are workarounds (ptrace, LD_PRELOAD), it's > easiest to install the seccomp filter directly in the Emacs process. I've attached a patch for this. --0000000000004c40a805b6d54284 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-support-for-seccomp-command-line-option.patch" Content-Disposition: attachment; filename="0001-Add-support-for-seccomp-command-line-option.patch" Content-Transfer-Encoding: base64 Content-ID: <f_kiw0xspy0> X-Attachment-Id: f_kiw0xspy0 RnJvbSA4MGZjMGFiOTJlMWYwMjVhOGE0MTA0N2Q3OTA5YmU2YTk3ZjViMDlhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CkRh dGU6IE1vbiwgMTQgRGVjIDIwMjAgMjE6MjU6MTEgKzAxMDAKU3ViamVjdDogW1BBVENIXSBBZGQg c3VwcG9ydCBmb3IgLS1zZWNjb21wIGNvbW1hbmQtbGluZSBvcHRpb24uCgpXaGVuIHBhc3Npbmcg dGhpcyBvcHRpb24gb24gR05VL0xpbnV4LCBFbWFjcyBpbnN0YWxscyBhIFNlY3VyZQpDb21wdXRp bmcga2VybmVsIHN5c3RlbSBjYWxsIGZpbHRlci4gIFNlZSBCdWcjNDUxOTguCgoqIGNvbmZpZ3Vy ZS5hYzogQ2hlY2sgZm9yIHNlY2NvbXAgaGVhZGVyLgoKKiBzcmMvZW1hY3MuYyAodXNhZ2VfbWVz c2FnZSk6IERvY3VtZW50IC0tc2VjY29tcCBvcHRpb24uCihlbWFjc19zZWNjb21wKTogTmV3IHdy YXBwZXIgZm9yICdzZWNjb21wJyBzeXNjYWxsLgoobG9hZF9zZWNjb21wLCBtYXliZV9sb2FkX3Nl Y2NvbXAsIHJlYWRfZnVsbCk6IE5ldyBoZWxwZXIgZnVuY3Rpb25zLgoobWFpbik6IFBvdGVudGlh bGx5IGxvYWQgc2VjY29tcCBmaWx0ZXJzIGR1cmluZyBzdGFydHVwLgooc3RhbmRhcmRfYXJncyk6 IEFkZCAtLXNlY2NvbXAgb3B0aW9uLgoKKiBsaXNwL3N0YXJ0dXAuZWwgKGNvbW1hbmQtbGluZSk6 IERldGVjdCBhbmQgaWdub3JlIC0tc2VjY29tcCBvcHRpb24uCgoqIHRlc3Qvc3JjL2VtYWNzLXRl c3RzLmVsIChlbWFjcy10ZXN0cy9zZWNjb21wL2Fic2VudC1maWxlKQooZW1hY3MtdGVzdHMvc2Vj Y29tcC9lbXB0eS1maWxlKQooZW1hY3MtdGVzdHMvc2VjY29tcC9pbnZhbGlkLWZpbGUtc2l6ZSk6 IE5ldyB1bml0IHRlc3RzLgooZW1hY3MtdGVzdHMtLXdpdGgtdGVtcC1maWxlKTogTmV3IGhlbHBl ciBtYWNyby4KCiogZXRjL05FV1M6IERvY3VtZW50IG5ldyAtLXNlY2NvbXAgb3B0aW9uLgotLS0K IGNvbmZpZ3VyZS5hYyAgICAgICAgICAgIHwgICAyICsKIGV0Yy9ORVdTICAgICAgICAgICAgICAg IHwgIDEwICsrKwogbGlzcC9zdGFydHVwLmVsICAgICAgICAgfCAgIDQgKy0KIHNyYy9lbWFjcy5j ICAgICAgICAgICAgIHwgMTY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0KIHRlc3Qvc3JjL2VtYWNzLXRlc3RzLmVsIHwgIDg2ICsrKysrKysrKysrKysrKysrKysrCiA1 IGZpbGVzIGNoYW5nZWQsIDI2NyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHRlc3Qvc3JjL2VtYWNzLXRlc3RzLmVsCgpkaWZmIC0tZ2l0IGEvY29uZmln dXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDg4OGI0MTUxNDguLjA4N2RkNjdlMTggMTAwNjQ0 Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTQxODQsNiArNDE4NCw4 IEBAIEFDX0RFRlVOCiBBQ19TVUJTVChbQkxFU1NNQUlMX1RBUkdFVF0pCiBBQ19TVUJTVChbTElC U19NQUlMXSkKIAorQUNfQ0hFQ0tfSEVBREVSUyhbbGludXgvc2VjY29tcC5oXSkKKwogT0xEX0xJ QlM9JExJQlMKIExJQlM9IiRMSUJfUFRIUkVBRCAkTElCX01BVEggJExJQlMiCiBBQ19DSEVDS19G VU5DUyhhY2NlcHQ0IGZjaGRpciBnZXRob3N0bmFtZSBcCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBi L2V0Yy9ORVdTCmluZGV4IDRhOGU3MGU2YTYuLmJkMjU1ZmFjYTQgMTAwNjQ0Ci0tLSBhL2V0Yy9O RVdTCisrKyBiL2V0Yy9ORVdTCkBAIC04Miw2ICs4MiwxNiBAQCBsYWNrcyB0aGUgdGVybWluZm8g ZGF0YWJhc2UsIHlvdSBjYW4gaW5zdHJ1Y3QgRW1hY3MgdG8gc3VwcG9ydCAyNC1iaXQKIHRydWUg Y29sb3IgYnkgc2V0dGluZyAnQ09MT1JURVJNPXRydWVjb2xvcicgaW4gdGhlIGVudmlyb25tZW50 LiAgVGhpcyBpcwogdXNlZnVsIG9uIHN5c3RlbXMgc3VjaCBhcyBGcmVlQlNEIHdoaWNoIHNoaXBz IG9ubHkgd2l0aCAiZXRjL3Rlcm1jYXAiLgogCisqKiBPbiBHTlUvTGludXggc3lzdGVtcywgRW1h Y3Mgbm93IHN1cHBvcnRzIGxvYWRpbmcgYSBTZWN1cmUgQ29tcHV0aW5nCitmaWx0ZXIuICBUbyB1 c2UgdGhpcywgeW91IGNhbiBwYXNzIGEgLS1zZWNjb21wPUZJTEUgY29tbWFuZC1saW5lCitvcHRp b24gdG8gRW1hY3MuICBGSUxFIG11c3QgbmFtZSBhIGJpbmFyeSBmaWxlIGNvbnRhaW5pbmcgYW4g YXJyYXkgb2YKKydzdHJ1Y3Qgc29ja19maWx0ZXInIHN0cnVjdHVyZXMuICBFbWFjcyB3aWxsIHRo ZW4gaW5zdGFsbCB0aGF0IGxpc3Qgb2YKK1NlY3VyZSBDb21wdXRpbmcgZmlsdGVycyBpbnRvIGl0 cyBvd24gcHJvY2VzcyBlYXJseSBkdXJpbmcgdGhlIHN0YXJ0dXAKK3Byb2Nlc3MuICBZb3UgY2Fu IHVzZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gcHV0IGFuIEVtYWNzIHByb2Nlc3MgaW4gYQorc2Fu ZGJveCB0byBhdm9pZCBzZWN1cml0eSBpc3N1ZXMgd2hlbiBleGVjdXRpbmcgdW50cnVzdGVkIGNv ZGUuICBTZWUKK3RoZSBtYW51YWwgcGFnZSBmb3IgJ3NlY2NvbXAnIGZvciBkZXRhaWxzIGFib3V0 IFNlY3VyZSBDb21wdXRpbmcKK2ZpbHRlcnMuCisKIAwKICogQ2hhbmdlcyBpbiBFbWFjcyAyOC4x CiAKZGlmZiAtLWdpdCBhL2xpc3Avc3RhcnR1cC5lbCBiL2xpc3Avc3RhcnR1cC5lbAppbmRleCBi MTEyOGY2ZDAyLi45YjEzNDZlNDQ4IDEwMDY0NAotLS0gYS9saXNwL3N0YXJ0dXAuZWwKKysrIGIv bGlzcC9zdGFydHVwLmVsCkBAIC0xMDk0LDcgKzEwOTQsNyBAQCBjb21tYW5kLWxpbmUKICAgICAg ICAgICAgICAgICAgICAgICAgICAoIi0tbm8teC1yZXNvdXJjZXMiKSAoIi0tZGVidWctaW5pdCIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgKCItLXVzZXIiKSAoIi0taWNvbmljIikgKCItLWlj b24tdHlwZSIpICgiLS1xdWljayIpCiAJCQkgKCItLW5vLWJsaW5raW5nLWN1cnNvciIpICgiLS1i YXNpYy1kaXNwbGF5IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAoIi0tZHVtcC1maWxlIikg KCItLXRlbWFjcyIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoIi0tZHVtcC1maWxlIikg KCItLXRlbWFjcyIpICgiLS1zZWNjb21wIikpKQogICAgICAgICAgICAgIChhcmdpIChwb3AgYXJn cykpCiAgICAgICAgICAgICAgKG9yaWctYXJnaSBhcmdpKQogICAgICAgICAgICAgIGFyZ3ZhbCkK QEAgLTExNDYsNyArMTE0Niw3IEBAIGNvbW1hbmQtbGluZQogCSAgKHB1c2ggJyh2aXNpYmlsaXR5 IC4gaWNvbikgaW5pdGlhbC1mcmFtZS1hbGlzdCkpCiAJICgobWVtYmVyIGFyZ2kgJygiLW5iYyIg Ii1uby1ibGlua2luZy1jdXJzb3IiKSkKIAkgIChzZXRxIG5vLWJsaW5raW5nLWN1cnNvciB0KSkK LSAgICAgICAgICgobWVtYmVyIGFyZ2kgJygiLWR1bXAtZmlsZSIgIi10ZW1hY3MiKSkgIDsgSGFu ZGxlZCBpbiBDCisgICAgICAgICAoKG1lbWJlciBhcmdpICcoIi1kdW1wLWZpbGUiICItdGVtYWNz IiAiLXNlY2NvbXAiKSkgIDsgSGFuZGxlZCBpbiBDCiAgICAgICAgICAgKG9yIGFyZ3ZhbCAocG9w IGFyZ3MpKQogICAgICAgICAgIChzZXRxIGFyZ3ZhbCBuaWwpKQogCSA7OyBQdXNoIHRoZSBwb3Bw ZWQgYXJnIGJhY2sgb24gdGhlIGxpc3Qgb2YgYXJndW1lbnRzLgpkaWZmIC0tZ2l0IGEvc3JjL2Vt YWNzLmMgYi9zcmMvZW1hY3MuYwppbmRleCAyYTMyMDgzYmExLi4wYTkzOWZjOTAxIDEwMDY0NAot LS0gYS9zcmMvZW1hY3MuYworKysgYi9zcmMvZW1hY3MuYwpAQCAtNjEsNiArNjEsMTMgQEAgI2Rl ZmluZSBNQUlOX1BST0dSQU0KICMgaW5jbHVkZSA8c3lzL3NvY2tldC5oPgogI2VuZGlmCiAKKyNp ZmRlZiBIQVZFX0xJTlVYX1NFQ0NPTVBfSAorIyBpbmNsdWRlIDxsaW51eC9zZWNjb21wLmg+Cisj IGluY2x1ZGUgPGxpbnV4L2ZpbHRlci5oPgorIyBpbmNsdWRlIDxzeXMvcHJjdGwuaD4KKyMgaW5j bHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNlbmRpZgorCiAjaWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVN CiAjaW5jbHVkZSBURVJNX0hFQURFUgogI2VuZGlmIC8qIEhBVkVfV0lORE9XX1NZU1RFTSAqLwpA QCAtMjM5LDYgKzI0NiwxMSBAQCAjZGVmaW5lIE1BSU5fUFJPR1JBTQogICAgICJcCiAtLWR1bXAt ZmlsZSBGSUxFICAgICAgICAgICAgcmVhZCBkdW1wZWQgc3RhdGUgZnJvbSBGSUxFXG5cCiAiLAor I2VuZGlmCisjaWZkZWYgSEFWRV9MSU5VWF9TRUNDT01QX0gKKyAgICAiXAorLS1zYW5kYm94PUZJ TEUgICAgICAgICAgICAgIHJlYWQgU2VjY29tcCBCUEYgZmlsdGVyIGZyb20gRklMRVxuXAorIgog I2VuZGlmCiAgICAgIlwKIC0tbm8tYnVpbGQtZGV0YWlscyAgICAgICAgICBkbyBub3QgYWRkIGJ1 aWxkIGRldGFpbHMgc3VjaCBhcyB0aW1lIHN0YW1wc1xuXApAQCAtOTM3LDYgKzk0OSwxNTAgQEAg bG9hZF9wZHVtcCAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogfQogI2VuZGlmIC8qIEhBVkVfUERV TVBFUiAqLwogCisjaWZkZWYgSEFWRV9MSU5VWF9TRUNDT01QX0gKKworLyogV3JhcHBlciBmdW5j dGlvbiBmb3IgdGhlIGBzZWNjb21wJyBzeXN0ZW0gY2FsbCBvbiBHTlUvTGludXguICBUaGlzIHN5 c3RlbQorICAgY2FsbCB1c3VhbGx5IGRvZXNuJ3QgaGF2ZSBhIHdyYXBwZXIgZnVuY3Rpb24uICBT ZWUgdGhlIG1hbnVhbCBwYWdlIG9mCisgICBgc2VjY29tcCcgZm9yIHRoZSBzaWduYXR1cmUuICAq LworCitzdGF0aWMgaW50CitlbWFjc19zZWNjb21wICh1bnNpZ25lZCBpbnQgb3BlcmF0aW9uLCB1 bnNpZ25lZCBpbnQgZmxhZ3MsIHZvaWQgKmFyZ3MpCit7CisjaWZkZWYgU1lTX3NlY2NvbXAKKyAg cmV0dXJuIHN5c2NhbGwgKFNZU19zZWNjb21wLCBvcGVyYXRpb24sIGZsYWdzLCBhcmdzKTsKKyNl bHNlCisgIGVycm5vID0gRU5PU1lTOworICByZXR1cm4gLTE7CisjZW5kaWYKK30KKworLyogUmVh ZCBleGFjdGx5IFNJWkUgYnl0ZXMgaW50byBCVUZGRVIuICBSZXR1cm4gZmFsc2Ugb24gc2hvcnQg cmVhZC4gICovCisKK3N0YXRpYyBib29sCityZWFkX2Z1bGwgKGludCBmZCwgdm9pZCAqYnVmZmVy LCBzaXplX3Qgc2l6ZSkKK3sKKyAgaWYgKFNTSVpFX01BWCA8IHNpemUpCisgICAgeworICAgICAg ZXJybm8gPSBFRkJJRzsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIGNoYXIgKnB0ciA9 IGJ1ZmZlcjsKKyAgd2hpbGUgKHNpemUgIT0gMCkKKyAgICB7CisgICAgICAvKiBXZSBjYW4ndCB1 c2UgYGVtYWNzX3JlYWQnIHlldCBiZWNhdXNlIHF1aXR0aW5nIGRvZXNuJ3Qgd29yayBoZXJlCisg ICAgICAgICB5ZXQuICAqLworICAgICAgc3NpemVfdCByZXQgPSBURU1QX0ZBSUxVUkVfUkVUUlkg KHJlYWQgKGZkLCBwdHIsIHNpemUpKTsKKyAgICAgIGlmIChyZXQgPCAwKQorICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgICBpZiAocmV0ID09IDApCisgICAgICAgIGJyZWFrOyAgLyogQXZvaWQg aW5maW5pdGUgbG9vcCBvbiBlbmNvdW50ZXJpbmcgRU9GLiAgKi8KKyAgICAgIGVhc3NlcnQgKHJl dCA8PSBzaXplKTsKKyAgICAgIHNpemUgLT0gcmV0OworICAgICAgcHRyICs9IHJldDsKKyAgICB9 CisgIGlmIChzaXplICE9IDApCisgICAgZXJybm8gPSBFTk9EQVRBOworICByZXR1cm4gc2l6ZSA9 PSAwOworfQorCisvKiBBdHRlbXB0IHRvIGxvYWQgU2VjdXJlIENvbXB1dGluZyBmaWx0ZXJzIGZy b20gRklMRS4gIFJldHVybiBmYWxzZSBpZiB0aGF0CisgICBkb2Vzbid0IHdvcmsgZm9yIHNvbWUg cmVhc29uLiAgKi8KKworc3RhdGljIGJvb2wKK2xvYWRfc2VjY29tcCAoY29uc3QgY2hhciAqZmls ZSkKK3sKKyAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgIHN0cnVjdCBzb2NrX2Zwcm9nIHByb2dy YW0gPSB7MCwgTlVMTH07CisgIC8qIFdlIGNhbid0IHVzZSBgZW1hY3Nfb3BlbicgeWV0IGJlY2F1 c2UgcXVpdHRpbmcgZG9lc24ndCB3b3JrIGhlcmUgeWV0LiAgKi8KKyAgaW50IGZkID0gVEVNUF9G QUlMVVJFX1JFVFJZIChvcGVuIChmaWxlLCBPX1JET05MWSB8IE9fQklOQVJZIHwgT19DTE9FWEVD KSk7CisgIGlmIChmZCA8IDApCisgICAgeworICAgICAgZW1hY3NfcGVycm9yICgib3BlbiIpOwor ICAgICAgZ290byBvdXQ7CisgICAgfQorICBzdHJ1Y3Qgc3RhdCBzdGF0OworICBpZiAoZnN0YXQg KGZkLCAmc3RhdCkgPCAwKQorICAgIHsKKyAgICAgIGVtYWNzX3BlcnJvciAoImZzdGF0Iik7Cisg ICAgICBnb3RvIG91dDsKKyAgICB9CisgIGlmIChzdGF0LnN0X3NpemUgPD0gMCB8fCBTSVpFX01B WCA8IHN0YXQuc3Rfc2l6ZQorICAgICAgfHwgKHNpemVfdCkgc3RhdC5zdF9zaXplICUgc2l6ZW9m ICpwcm9ncmFtLmZpbHRlciAhPSAwKQorICAgIHsKKyAgICAgIGZwcmludGYgKHN0ZGVyciwgInNl Y2NvbXAgZmlsdGVyICVzIGhhcyBpbnZhbGlkIHNpemUgJWpkXG4iLCBmaWxlLAorICAgICAgICAg ICAgICAgKGludG1heF90KSBzdGF0LnN0X3NpemUpOworICAgICAgZ290byBvdXQ7CisgICAgfQor ICBzaXplX3Qgc2l6ZSA9IHN0YXQuc3Rfc2l6ZTsKKyAgc2l6ZV90IGNvdW50ID0gc2l6ZSAvIHNp emVvZiAqcHJvZ3JhbS5maWx0ZXI7CisgIGVhc3NlcnQgKDAgPCBzaXplICYmIDAgPCBjb3VudCk7 CisgIGlmIChVU0hSVF9NQVggPCBjb3VudCkKKyAgICB7CisgICAgICBmcHJpbnRmIChzdGRlcnIs ICJzZWNjb21wIGZpbHRlciAlcyBpcyB0b28gYmlnIiwgZmlsZSk7CisgICAgICBnb3RvIG91dDsK KyAgICB9CisgIHByb2dyYW0ubGVuID0gY291bnQ7CisgIHByb2dyYW0uZmlsdGVyID0gbWFsbG9j IChzaXplKTsKKyAgaWYgKHByb2dyYW0uZmlsdGVyID09IE5VTEwpCisgICAgeworICAgICAgZW1h Y3NfcGVycm9yICgibWFsbG9jIik7CisgICAgICBnb3RvIG91dDsKKyAgICB9CisgIGlmICghcmVh ZF9mdWxsIChmZCwgcHJvZ3JhbS5maWx0ZXIsIHNpemUpKQorICAgIHsKKyAgICAgIGVtYWNzX3Bl cnJvciAoInJlYWQiKTsKKyAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgaWYgKGNsb3NlIChmZCkg IT0gMCkKKyAgICBlbWFjc19wZXJyb3IgKCJjbG9zZSIpOyAgLyogbm90IGNyaXRpY2FsICovCisg IGZkID0gLTE7CisKKyAgLyogU2VlIG1hbiBwYWdlIG9mIGBzZWNjb21wJyB3aHkgdGhpcyBpcyBu ZWNlc3NhcnkuICBOb3RlIHRoYXQgd2UKKyAgICAgaW50ZW50aW9uYWxseSBkb24ndCBjaGVjayB0 aGUgcmV0dXJuIHZhbHVlOiBhIHBhcmVudCBwcm9jZXNzIG1pZ2h0IGhhdmUKKyAgICAgbWFkZSB0 aGlzIGNhbGwgYmVmb3JlLCBpbiB3aGljaCBjYXNlIGl0IHdvdWxkIGZhaWw7IG9yLCBpZiBlbmFi bGluZworICAgICBwcml2aWxlZ2UtcmVzdHJpY3RpbmcgbW9kZSBmYWlscywgdGhlIGBzZWNjb21w JyBzeXNjYWxsIHdpbGwgZmFpbAorICAgICBhbnl3YXkuICAqLworICBwcmN0bCAoUFJfU0VUX05P X05FV19QUklWUywgMSwgMCwgMCwgMCk7CisgIC8qIEluc3RhbGwgdGhlIGZpbHRlci4gIE1ha2Ug c3VyZSB0aGF0IHBvdGVudGlhbCBvdGhlciB0aHJlYWRzIGNhbid0IGVzY2FwZQorICAgICBpdC4g ICovCisgIGlmIChlbWFjc19zZWNjb21wIChTRUNDT01QX1NFVF9NT0RFX0ZJTFRFUiwgU0VDQ09N UF9GSUxURVJfRkxBR19UU1lOQywKKyAgICAgICAgICAgICAgICAgICAgICZwcm9ncmFtKQorICAg ICAgIT0gMCkKKyAgICB7CisgICAgICBlbWFjc19wZXJyb3IgKCJzZWNjb21wIik7CisgICAgICBn b3RvIG91dDsKKyAgICB9CisgIHN1Y2Nlc3MgPSB0cnVlOworCisgb3V0OgorICBmcmVlIChwcm9n cmFtLmZpbHRlcik7CisgIGNsb3NlIChmZCk7CisgIHJldHVybiBzdWNjZXNzOworfQorCisvKiBM b2FkIFNlY3VyZSBDb21wdXRpbmcgZmlsdGVyIGZyb20gZmlsZSBzcGVjaWZpZWQgd2l0aCB0aGUg LS1zZWNjb21wIG9wdGlvbi4KKyAgIEV4aXQgaWYgdGhhdCBmYWlscy4gICovCisKK3N0YXRpYyB2 b2lkCittYXliZV9sb2FkX3NlY2NvbXAgKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgaW50 IHNraXBfYXJncyA9IDA7CisgIGNoYXIgKmZpbGUgPSBOVUxMOworICB3aGlsZSAoc2tpcF9hcmdz IDwgYXJnYyAtIDEpCisgICAgeworICAgICAgaWYgKGFyZ21hdGNoIChhcmd2LCBhcmdjLCAiLXNl Y2NvbXAiLCAiLS1zZWNjb21wIiwgOSwgJmZpbGUsICZza2lwX2FyZ3MpCisgICAgICAgICAgfHwg YXJnbWF0Y2ggKGFyZ3YsIGFyZ2MsICItLSIsIE5VTEwsIDIsIE5VTEwsICZza2lwX2FyZ3MpKQor ICAgICAgICBicmVhazsKKyAgICAgICsrc2tpcF9hcmdzOworICAgIH0KKyAgaWYgKGZpbGUgPT0g TlVMTCkKKyAgICByZXR1cm47CisgIGlmICghbG9hZF9zZWNjb21wIChmaWxlKSkKKyAgICBmYXRh bCAoImNhbm5vdCBlbmFibGUgc2VjY29tcCBmaWx0ZXIgZnJvbSAlcyIsIGZpbGUpOworfQorCisj ZW5kaWYgIC8qIEhBVkVfTElOVVhfU0VDQ09NUF9IICovCisKIGludAogbWFpbiAoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogewpAQCAtOTQ0LDYgKzExMDAsMTMgQEAgbWFpbiAoaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogICAgICBmb3IgcG9pbnRlcnMuICAqLwogICB2b2lkICpzdGFja19ib3R0b21f dmFyaWFibGU7CiAKKyAgLyogRmlyc3QsIGNoZWNrIHdoZXRoZXIgd2Ugc2hvdWxkIGFwcGx5IGEg c2VjY29tcCBmaWx0ZXIuICBUaGlzIHNob3VsZCBjb21lIGF0CisgICAgIHRoZSB2ZXJ5IGJlZ2lu bmluZyB0byBhbGxvdyB0aGUgZmlsdGVyIHRvIHByb3RlY3QgdGhlIGluaXRpYWxpemF0aW9uCisg ICAgIHBoYXNlLiAgKi8KKyNpZmRlZiBIQVZFX0xJTlVYX1NFQ0NPTVBfSAorICBtYXliZV9sb2Fk X3NlY2NvbXAgKGFyZ2MsIGFyZ3YpOworI2VuZGlmCisKICAgYm9vbCBub19sb2FkdXAgPSBmYWxz ZTsKICAgY2hhciAqanVuayA9IDA7CiAgIGNoYXIgKmRuYW1lX2FyZyA9IDA7CkBAIC0yMTM3LDEy ICsyMzAwLDE1IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgeyAiLWNvbG9yIiwg Ii0tY29sb3IiLCA1LCAwfSwKICAgeyAiLW5vLXNwbGFzaCIsICItLW5vLXNwbGFzaCIsIDMsIDAg fSwKICAgeyAiLW5vLWRlc2t0b3AiLCAiLS1uby1kZXNrdG9wIiwgMywgMCB9LAotICAvKiBUaGUg Zm9sbG93aW5nIHR3byBtdXN0IGJlIGp1c3QgYWJvdmUgdGhlIGZpbGUtbmFtZSBhcmdzLCB0byBn ZXQKKyAgLyogVGhlIGZvbGxvd2luZyB0aHJlZSBtdXN0IGJlIGp1c3QgYWJvdmUgdGhlIGZpbGUt bmFtZSBhcmdzLCB0byBnZXQKICAgICAgdGhlbSBvdXQgb2Ygb3VyIHdheSwgYnV0IHdpdGhvdXQg bWl4aW5nIHRoZW0gd2l0aCBmaWxlIG5hbWVzLiAgKi8KICAgeyAiLXRlbWFjcyIsICItLXRlbWFj cyIsIDEsIDEgfSwKICNpZmRlZiBIQVZFX1BEVU1QRVIKICAgeyAiLWR1bXAtZmlsZSIsICItLWR1 bXAtZmlsZSIsIDEsIDEgfSwKICNlbmRpZgorI2lmZGVmIEhBVkVfTElOVVhfU0VDQ09NUF9ICisg IHsgIi1zZWNjb21wIiwgIi0tc2VjY29tcCIsIDEsIDEgfSwKKyNlbmRpZgogI2lmZGVmIEhBVkVf TlMKICAgeyAiLU5TQXV0b0xhdW5jaCIsIDAsIDUsIDEgfSwKICAgeyAiLU5YQXV0b0xhdW5jaCIs IDAsIDUsIDEgfSwKZGlmZiAtLWdpdCBhL3Rlc3Qvc3JjL2VtYWNzLXRlc3RzLmVsIGIvdGVzdC9z cmMvZW1hY3MtdGVzdHMuZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u Mjc5ZWNiMjEwYwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Qvc3JjL2VtYWNzLXRlc3RzLmVsCkBA IC0wLDAgKzEsODYgQEAKKzs7OyBlbWFjcy10ZXN0cy5lbCAtLS0gdW5pdCB0ZXN0cyBmb3IgZW1h Y3MuYyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAtKi0KKworOzsgQ29weXJpZ2h0IChDKSAyMDIw ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworOzsgVGhpcyBmaWxlIGlzIHBhcnQg b2YgR05VIEVtYWNzLgorCis7OyBHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9y Cis7OyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCis7OyBHTlUgRW1hY3Mg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7IGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCis7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorCis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNl ZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCis7OzsgQ29tbWVudGFyeToKKwor OzsgVW5pdCB0ZXN0cyBmb3Igc3JjL2VtYWNzLmMuCisKKzs7OyBDb2RlOgorCisocmVxdWlyZSAn Y2wtbGliKQorKHJlcXVpcmUgJ2VydCkKKworKGVydC1kZWZ0ZXN0IGVtYWNzLXRlc3RzL3NlY2Nv bXAvYWJzZW50LWZpbGUgKCkKKyAgKGxldCAoKGVtYWNzIChleHBhbmQtZmlsZS1uYW1lIGludm9j YXRpb24tbmFtZSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkpCisgICAgICAgIChwcm9jZXNzLWVudmly b25tZW50IG5pbCkpCisgICAgKHNraXAtdW5sZXNzIChmaWxlLWV4ZWN1dGFibGUtcCBlbWFjcykp CisgICAgKHNob3VsZC1ub3QgKGZpbGUtZXhpc3RzLXAgIi9kb2VzLW5vdC1leGlzdC5icGYiKSkK KyAgICAoc2hvdWxkLW5vdAorICAgICAoZXFsIChjYWxsLXByb2Nlc3MgZW1hY3MgbmlsIG5pbCBu aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICItLXF1aWNrIiAiLS1iYXRjaCIgIi0tc2VjY29t cD0vZG9lcy1ub3QtZXhpc3QuYnBmIikKKyAgICAgICAgICAwKSkpKQorCisoY2wtZGVmbWFjcm8g ZW1hY3MtdGVzdHMtLXdpdGgtdGVtcC1maWxlCisgICAgKHZhciAocHJlZml4ICZvcHRpb25hbCBz dWZmaXggdGV4dCkgJnJlc3QgYm9keSkKKyAgIkV2YWx1YXRlIEJPRFkgd2hpbGUgYSBuZXcgdGVt cG9yYXJ5IGZpbGUgZXhpc3RzLgorQmluZCBWQVIgdG8gdGhlIG5hbWUgb2YgdGhlIGZpbGUuICBQ YXNzIFBSRUZJWCwgU1VGRklYLCBhbmQgVEVYVAordG8gYG1ha2UtdGVtcC1maWxlJywgd2hpY2gg c2VlLiIKKyAgKGRlY2xhcmUgKGluZGVudCAyKSAoZGVidWcgKHN5bWJvbHAgKGZvcm0gZm9ybSBm b3JtKSBib2R5KSkpCisgIChjbC1jaGVjay10eXBlIHZhciBzeW1ib2wpCisgIDs7IFVzZSBhbiB1 bmludGVybmVkIHN5bWJvbCBzbyB0aGF0IHRoZSBjb2RlIHN0aWxsIHdvcmtzIGlmIEJPRFkgY2hh bmdlcyBWQVIuCisgIChsZXQgKChmaWxlbmFtZSAobWFrZS1zeW1ib2wgImZpbGVuYW1lIikpKQor ICAgIGAobGV0ICgoLGZpbGVuYW1lIChtYWtlLXRlbXAtZmlsZSAscHJlZml4IG5pbCAsc3VmZml4 ICx0ZXh0KSkpCisgICAgICAgKHVud2luZC1wcm90ZWN0CisgICAgICAgICAgIChsZXQgKCgsdmFy ICxmaWxlbmFtZSkpCisgICAgICAgICAgICAgLEBib2R5KQorICAgICAgICAgKGRlbGV0ZS1maWxl ICxmaWxlbmFtZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBlbWFjcy10ZXN0cy9zZWNjb21wL2VtcHR5 LWZpbGUgKCkKKyAgKGxldCAoKGVtYWNzIChleHBhbmQtZmlsZS1uYW1lIGludm9jYXRpb24tbmFt ZSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkpCisgICAgICAgIChwcm9jZXNzLWVudmlyb25tZW50IG5p bCkpCisgICAgKHNraXAtdW5sZXNzIChmaWxlLWV4ZWN1dGFibGUtcCBlbWFjcykpCisgICAgKGVt YWNzLXRlc3RzLS13aXRoLXRlbXAtZmlsZSBmaWx0ZXIgKCJzZWNjb21wLWludmFsaWQtIiAiLmJw ZiIpCisgICAgICA7OyBUaGUgLS1zZWNjb21wIG9wdGlvbiBpcyBwcm9jZXNzZWQgZWFybHksIHdp dGhvdXQgZmlsZW5hbWUgaGFuZGxlcnMuCisgICAgICA7OyBUaGVyZWZvcmUgcmVtb3RlIG9yIHF1 b3RlZCBmaWxlbmFtZXMgd291bGRuJ3Qgd29yay4KKyAgICAgIChzaG91bGQtbm90IChmaWxlLXJl bW90ZS1wIGZpbHRlcikpCisgICAgICAoY2wtY2FsbGYgZmlsZS1uYW1lLXVucXVvdGUgZmlsdGVy KQorICAgICAgOzsgQWNjb3JkaW5nIHRvIHRoZSBTZWNjb21wIG1hbiBwYWdlLCBhIGZpbHRlciBt dXN0IGhhdmUgYXQgbGVhc3Qgb25lCisgICAgICA7OyBlbGVtZW50LCBzbyBFbWFjcyBzaG91bGQg cmVqZWN0IGFuIGVtcHR5IGZpbGUuCisgICAgICAoc2hvdWxkLW5vdAorICAgICAgIChlcWwgKGNh bGwtcHJvY2VzcyBlbWFjcyBuaWwgbmlsIG5pbAorICAgICAgICAgICAgICAgICAgICAgICAgICAi LS1xdWljayIgIi0tYmF0Y2giIChjb25jYXQgIi0tc2VjY29tcD0iIGZpbHRlcikpCisgICAgICAg ICAgICAwKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtYWNzLXRlc3RzL3NlY2NvbXAvaW52YWxpZC1m aWxlLXNpemUgKCkKKyAgKGxldCAoKGVtYWNzIChleHBhbmQtZmlsZS1uYW1lIGludm9jYXRpb24t bmFtZSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkpCisgICAgICAgIChwcm9jZXNzLWVudmlyb25tZW50 IG5pbCkpCisgICAgKHNraXAtdW5sZXNzIChmaWxlLWV4ZWN1dGFibGUtcCBlbWFjcykpCisgICAg KGVtYWNzLXRlc3RzLS13aXRoLXRlbXAtZmlsZSBmaWx0ZXIgKCJzZWNjb21wLWludmFsaWQtIiAi LmJwZiIgIjEyMzQ1NiIpCisgICAgICA7OyBUaGUgLS1zZWNjb21wIG9wdGlvbiBpcyBwcm9jZXNz ZWQgZWFybHksIHdpdGhvdXQgZmlsZW5hbWUgaGFuZGxlcnMuCisgICAgICA7OyBUaGVyZWZvcmUg cmVtb3RlIG9yIHF1b3RlZCBmaWxlbmFtZXMgd291bGRuJ3Qgd29yay4KKyAgICAgIChzaG91bGQt bm90IChmaWxlLXJlbW90ZS1wIGZpbHRlcikpCisgICAgICAoY2wtY2FsbGYgZmlsZS1uYW1lLXVu cXVvdGUgZmlsdGVyKQorICAgICAgOzsgVGhlIFNlY2NvbXAgZmlsdGVyIGZpbGUgbXVzdCBoYXZl IGEgZmlsZSBzaXplIHRoYXQncyBhIG11bHRpcGxlIG9mIHRoZQorICAgICAgOzsgc2l6ZSBvZiBz dHJ1Y3Qgc29ja19maWx0ZXIsIHdoaWNoIGlzIDggb3IgMTYsIGJ1dCBuZXZlciA2LgorICAgICAg KHNob3VsZC1ub3QKKyAgICAgICAoZXFsIChjYWxsLXByb2Nlc3MgZW1hY3MgbmlsIG5pbCBuaWwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tcXVpY2siICItLWJhdGNoIiAoY29uY2F0ICIt LXNlY2NvbXA9IiBmaWx0ZXIpKQorICAgICAgICAgICAgMCkpKSkpCisKKzs7OyBlbWFjcy10ZXN0 cy5lbCBlbmRzIGhlcmUKLS0gCjIuMjkuMi43MjkuZzQ1ZGFmODc3N2QtZ29vZwoK --0000000000004c40a805b6d54284--
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Dec 2020 18:12:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 19 13:12:07 2020 Received: from localhost ([127.0.0.1]:43113 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqgi7-0007Ii-9t for submit <at> debbugs.gnu.org; Sat, 19 Dec 2020 13:12:07 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:29327) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1kqgi4-0007IB-98 for 45198 <at> debbugs.gnu.org; Sat, 19 Dec 2020 13:12:06 -0500 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 0971F809A5; Sat, 19 Dec 2020 13:11:59 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 7FA7380668; Sat, 19 Dec 2020 13:11:57 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1608401517; bh=pn3XQHTzzJAMfq4kW8xwVQbUyw64LIaMVfMsvROlauI=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=FQf6BajSU6AU2HyEppyDBGy38AL5ElOo+KYB5KuKqb/OZJfgNLOpixAhuc0qYrImx cKKvrLbmgsDGDu3NgTPx3O2QIl2IjsxYXPFYOXFX5Qvae0FrvPPvYlfWXOQeYmJmXX PFx9WU9ufpeBc9Dis+gPOHfDrx9I08g+iWucZd5Thu1je9XQuaeb32e9h+kVT7UbBJ l4uD6rfFQxE5+BJA5AXiM8Cc1mbnXl7/4fDChgyipKvKmVD5cBywAdCvEwd7qPKE3K hFBWLrSqqDlC1vswevTp75YiUXkZU14g9pRsAj7BHfHm66XKoZxR/6KkbxNjWH7MnQ BbMEKdVmckV5g== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 2FD7B1202C2; Sat, 19 Dec 2020 13:11:57 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Mattias =?windows-1252?Q?Engdeg=E5rd?= <mattiase@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwvblepoeuq.fsf-monnier+emacs@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> Date: Sat, 19 Dec 2020 13:11:56 -0500 In-Reply-To: <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> ("Mattias =?windows-1252?Q?Engdeg=E5rd=22's?= message of "Sat, 19 Dec 2020 18:19:32 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.074 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Philipp Stephani <p.stephani2@HIDDEN>, =?windows-1252?B?Sm/jbyBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) [ I'm afraid I dropped out of the discussion, so I may lack some context. ] > What I meant is that there is no way of knowing whether an API is rubbish or > not without having put it to use ourselves first (preferably in two or more > ways), so let's not front-load the design. We know that this is true > regardless of how good programmers we think we are. > Flymake would be a natural user, but it must cope with our own demands first. IIUC the discussion surrounds mostly around restricting file-reads, right? I agree it'd be good to have a sandbox that restricts file-reads, but we should think about how to design such a thing, i.e. how to specify (and then enforce) which files can be read. My experience with the GNU ELPA scripts using bwrap is that it might not be easy: we definitely don't want to give read access to /etc, yet it seems very likely that some files in /etc may be needed, even in very mundane circumstances (e.g. /etc/alternatives or /etc/emacs or ...). This gets quickly very OS-dependent (and doesn't depend just on Windows-vs-GNU/Linux but varies also between distributions of GNU/Linux). If we stick to an "in-process" sandbox (i.e. you can't run sub-processes) it makes this a bit simpler (you don't need to worry about read access to /lib vs /lib64 and other such things), so maybe it is manageable. But I think the starting point would be to give read access to everything that's under one of the directories mentioned in `load-path`. > There's a difference though: flycheck is installed by someone who wants to > use it and is presumably ready for some setting-up. In contrast, we are > aiming at an on-by-default zero-configuration Emacs feature, which means > that the bar is higher. It's meant precisely for those who would not install > and configure flycheck, so false positives may have effects opposite > the intended. Indeed, in order to enable flymake by default we're going to have to be extra careful to try and make sure the user isn't smothered in warnings. That probably means for example to keep flymake disabled when visiting the init file. >> I also think that packages shouldn't rely on autoloads from other >> packages. I generally dislike autoloads and think they are overused. >> They make programming unnecessarily brittle because they assume not >> only that the load path is set up correctly, but also that the correct >> loaddefs files are already loaded. Autoloads are probably fine for >> interactive commands to avoid unnecessarily loading rarely-used >> packages, but inter-package dependencies should just use 'require'. > I don't necessarily disagree but it would be interesting to hear what Stefan > thinks about it. Since it's somewhat of an opinionated tool after all, it's > squarely within our remit to lay down policy... I must say I don't know what's being discussed here. What autoloads? Why do we care? Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Dec 2020 17:19:40 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 19 12:19:40 2020 Received: from localhost ([127.0.0.1]:43061 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqftM-000601-7z for submit <at> debbugs.gnu.org; Sat, 19 Dec 2020 12:19:40 -0500 Received: from mail150c50.megamailservers.eu ([91.136.10.160]:60772 helo=mail50c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1kqftJ-0005zr-M7 for 45198 <at> debbugs.gnu.org; Sat, 19 Dec 2020 12:19:38 -0500 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1608398376; bh=6M8tWVZhzpVnVSylxpdH/SeYMk/8zz1Arrb6ucrN99c=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=RobZbhWnlOq2rVksBr9VpNrYzD87ZREYp4rCpINFRiT1kvlTgLGchZszs0ULdkXy+ 0xRUus/p6LyeK9D4zrtwvzBjDmrBzp5BWQHDoo4f0BPseETV40VvBSrZG+0qPN9G0A ny8qAo61QHo082HPHQ35P7dMQFj8S25xoys8Aol4= Feedback-ID: mattiase@HIDDEN Received: from stanniol.lan (c-064ae655.032-75-73746f71.bbcust.telenor.se [85.230.74.6]) (authenticated bits=0) by mail50c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0BJHJX2A003828; Sat, 19 Dec 2020 17:19:34 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> In-Reply-To: <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> Date: Sat, 19 Dec 2020 18:19:32 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <414E5ED4-0105-43FF-9DF5-D5A2E32E586B@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A782F1D.5FDE3628.001D, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=EoysUhUA c=1 sm=1 tr=0 a=Ni+dBsiEfW2GqKMPYZim9A==:117 a=Ni+dBsiEfW2GqKMPYZim9A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=pGLkceISAAAA:8 a=pab_C4cjCCZU-3B4GMoA:9 a=CjuIK1q_8ugA:10 X-Origin-Country: SE X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) 19 dec. 2020 kl. 16.08 skrev Philipp Stephani <p.stephani2@HIDDEN>: > I'd say these two questions are somewhat independent of each other. > Even with an internal-only interface, people will start to assume that > reading arbitrary files works. > I'm personally not a huge fan of such internal interfaces though. They > are necessary in some cases, but a high-level UI framework like > Flymake shouldn't need to use them. Besides, since Flymake is released > as an external package, it should rather not use internal interfaces > in the first place. What I meant is that there is no way of knowing whether an API is = rubbish or not without having put it to use ourselves first (preferably = in two or more ways), so let's not front-load the design. We know that = this is true regardless of how good programmers we think we are.=20 Flymake would be a natural user, but it must cope with our own demands = first. >> Thanks for the reference, and you may very well be right. A = counterpoint is that since the facility would be enabled by default, a = user met with complaints about perfectly fine code will immediately = disable the checks and thus foil our plan to nudge his coding habits in = a desirable direction. >=20 > Maybe, though I wouldn't be so sure. Elisp compilation in Flycheck is > enabled by default and presumably suffers from the same problems. > There are also similar problems with other languages: for example, > when I visit src/lisp.h and enable Flymake, I get 2287 errors, 154 > warnings, and 4002 notices (which is an actual problem since the huge > number of overlays makes Emacs sluggish - probably Flymake should just > stop after 20 diagnostics or so...). I totally agree that we need to > keep the false positive rate low, but I wouldn't say that any nonzero > rate would make Flymake useless. There's a difference though: flycheck is installed by someone who wants = to use it and is presumably ready for some setting-up. In contrast, we = are aiming at an on-by-default zero-configuration Emacs feature, which = means that the bar is higher. It's meant precisely for those who would = not install and configure flycheck, so false positives may have effects = opposite the intended. > I also think that packages shouldn't rely on autoloads from other > packages. I generally dislike autoloads and think they are overused. > They make programming unnecessarily brittle because they assume not > only that the load path is set up correctly, but also that the correct > loaddefs files are already loaded. Autoloads are probably fine for > interactive commands to avoid unnecessarily loading rarely-used > packages, but inter-package dependencies should just use 'require'. I don't necessarily disagree but it would be interesting to hear what = Stefan thinks about it. Since it's somewhat of an opinionated tool after = all, it's squarely within our remit to lay down policy...
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 19 Dec 2020 15:09:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 19 10:09:13 2020 Received: from localhost ([127.0.0.1]:42993 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqdr7-0002kk-0H for submit <at> debbugs.gnu.org; Sat, 19 Dec 2020 10:09:13 -0500 Received: from mail-oi1-f181.google.com ([209.85.167.181]:36484) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kqdr4-0002kW-EK for 45198 <at> debbugs.gnu.org; Sat, 19 Dec 2020 10:09:11 -0500 Received: by mail-oi1-f181.google.com with SMTP id 9so6378066oiq.3 for <45198 <at> debbugs.gnu.org>; Sat, 19 Dec 2020 07:09:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=5vJSOwWmpjKDCJpvhk4WPwuXNwjp3xf5k/8yPY+wXrQ=; b=BWdHd7fel10AgeS5FAwDR9yWuMGPlZp8X4pWSVi1A9CrKu3kFakWD6BXivfwn7e3Xv ViCl0wXocDaQ7nY1JxqR6LH0WG1q49ATJG50+Q5AohKEq9/dnYu9P8Bl5s4ytHs055tb rx/d9nvz80+weVHLIQI0fsGI1B3Yt1w2/aKB/Y/QXAnJ+atf+6S9kzZ2ahnOrpzGt7WG /yarTH0x+UiET2ic6bNFSxQzsgDa8vfbp+te4iVopYoCBAURVZ+XGuh/WEKXK1+nmL3g or/44yLj1DzlUdV3MBiCtvXhIFhfUDvDV9B/OJZHJ8sff9cHpk/YfYkgeSVIDGTY2ZeK 7cBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=5vJSOwWmpjKDCJpvhk4WPwuXNwjp3xf5k/8yPY+wXrQ=; b=ekSrHmejI4dVfhdmOvJtoXByVOzQbIkXXB/DQ1jEUg9mxkupMIW0hSgPLBCitvdCDp Jc/s9tTDR/Ig4HV1ZWhlSYfdlKax/WI6NYAA2r+gCflzcV8vLDsx0S88133O974LOcmL w/qv3azovzFR3k8SOQG20M0d63Dbql3IeeR5oVxHYUJrRN8uqWDSY9z7hzZUfDnZu6JD xxkQVkqGSM7bd01lNH23ysFND2CNdiZ2fuHUrfS7/HRb8EGW1SVxHGZau6LHWICD7UqT e0YbgPKF0fmCcq3/UYwhQ5n5Tp/r2jpWN1WQxbDa+HFW0uZm2MUOxkjj6ouLe99TWkKS MMrA== X-Gm-Message-State: AOAM532nV/hdLtkfqQXeUs/xN8DjoOuF6ZvY8Je06LN/iiRFqO/8XCv5 8nIARDjNMXKB6UiofIoZ95IOqWYLRU+nSpKrPus= X-Google-Smtp-Source: ABdhPJwfv5FgOSKyQ9EqI8UN6xeXs8T/yURRr9BsZ0opR5oUI6dNH7JmYmcBIe/Yz/qCq5zHtxm9CeMPI9UdUF1Q8a4= X-Received: by 2002:aca:3b03:: with SMTP id i3mr5965444oia.170.1608390544553; Sat, 19 Dec 2020 07:09:04 -0800 (PST) MIME-Version: 1.0 References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> In-Reply-To: <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sat, 19 Dec 2020 16:08:52 +0100 Message-ID: <CAArVCkT3dCXrjuRpwVVPc=Zx_ZZg2oztpfk34U7Kb5KLnXx=Cw@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am Fr., 18. Dez. 2020 um 19:50 Uhr schrieb Mattias Engdeg=C3=A5rd <mattiase= @acm.org>: > > 18 dec. 2020 kl. 16.21 skrev Philipp Stephani <p.stephani2@HIDDEN>: > > > Ah, I was talking about the engineering/product management aspect, not > > about the technical one: If you start with an initially-open sandbox > > policy, locking it down in future releases is much harder than the > > other way round. > > I assumed we were just building a mechanism for our own consumption at th= is stage, even if the eventual aim is something available for general use. I'd say these two questions are somewhat independent of each other. Even with an internal-only interface, people will start to assume that reading arbitrary files works. I'm personally not a huge fan of such internal interfaces though. They are necessary in some cases, but a high-level UI framework like Flymake shouldn't need to use them. Besides, since Flymake is released as an external package, it should rather not use internal interfaces in the first place. > > > We > > should definitely run the subprocess with --quick --batch and an empty > > environment by default, not only for security and speed, but also for > > reproducibility. That's also what Flycheck does > > (https://github.com/flycheck/flycheck/blob/a11b789807d1d942d6fcfac17508= d072b9cf7ba8/flycheck.el#L8435) > > Thanks for the reference, and you may very well be right. A counterpoint = is that since the facility would be enabled by default, a user met with com= plaints about perfectly fine code will immediately disable the checks and t= hus foil our plan to nudge his coding habits in a desirable direction. Maybe, though I wouldn't be so sure. Elisp compilation in Flycheck is enabled by default and presumably suffers from the same problems. There are also similar problems with other languages: for example, when I visit src/lisp.h and enable Flymake, I get 2287 errors, 154 warnings, and 4002 notices (which is an actual problem since the huge number of overlays makes Emacs sluggish - probably Flymake should just stop after 20 diagnostics or so...). I totally agree that we need to keep the false positive rate low, but I wouldn't say that any nonzero rate would make Flymake useless. > > I take it that you don't suggest that we skip on loading autoloads (possi= bly in the shape of quickstart) though? A bit rough to byte-compile without= those, unless we deprecate autoloads altogether. > Good question. I'd say we disable them initially and see what happens. It'll be a while until Emacs 28 gets released, so we have enough time to gather feedback and make adjustments. I also think that packages shouldn't rely on autoloads from other packages. I generally dislike autoloads and think they are overused. They make programming unnecessarily brittle because they assume not only that the load path is set up correctly, but also that the correct loaddefs files are already loaded. Autoloads are probably fine for interactive commands to avoid unnecessarily loading rarely-used packages, but inter-package dependencies should just use 'require'.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 18 Dec 2020 18:50:26 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 18 13:50:26 2020 Received: from localhost ([127.0.0.1]:39904 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqKpe-00015N-9O for submit <at> debbugs.gnu.org; Fri, 18 Dec 2020 13:50:26 -0500 Received: from mail1476c50.megamailservers.eu ([91.136.14.76]:41902 helo=mail118c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1kqKpa-000157-Tc for 45198 <at> debbugs.gnu.org; Fri, 18 Dec 2020 13:50:23 -0500 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1608317416; bh=DRvhXphCF16NoIsHJ9im/Cx0Xy/ncRb+fP34cfM+lvo=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=ZtlG9ShXyvCG1sTUOFM/GELogQzmkJTOMLUTGEeG/BNMJK5GNJRZ6F5v3oOWp+orm abmkVD+gsWmyqGtHOKEErQSo4B56RVepZYT9AQTCy3x3Ytiqn6kzPN24fIhq53vl+H qUDV33fSRat+ftCIRk0r4wZSuV/inl7GlHh+b4hU= Feedback-ID: mattiase@HIDDEN Received: from stanniol.lan (c-064ae655.032-75-73746f71.bbcust.telenor.se [85.230.74.6]) (authenticated bits=0) by mail118c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0BIIoD4O024315; Fri, 18 Dec 2020 18:50:14 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> In-Reply-To: <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> Date: Fri, 18 Dec 2020 19:50:12 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <D3A22728-8650-409B-9406-45A1C191C5F9@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A782F17.5FDCF9E8.0068, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=HYRqsRM8 c=1 sm=1 tr=0 a=Ni+dBsiEfW2GqKMPYZim9A==:117 a=Ni+dBsiEfW2GqKMPYZim9A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=pGLkceISAAAA:8 a=Nb5UD5TeAAAA:20 a=_W6XiWOAtFuLNlGfoowA:9 a=CjuIK1q_8ugA:10 X-Origin-Country: SE X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) 18 dec. 2020 kl. 16.21 skrev Philipp Stephani <p.stephani2@HIDDEN>: > Ah, I was talking about the engineering/product management aspect, not > about the technical one: If you start with an initially-open sandbox > policy, locking it down in future releases is much harder than the > other way round. I assumed we were just building a mechanism for our own consumption at = this stage, even if the eventual aim is something available for general = use. > We > should definitely run the subprocess with --quick --batch and an empty > environment by default, not only for security and speed, but also for > reproducibility. That's also what Flycheck does > = (https://github.com/flycheck/flycheck/blob/a11b789807d1d942d6fcfac17508d07= 2b9cf7ba8/flycheck.el#L8435) Thanks for the reference, and you may very well be right. A counterpoint = is that since the facility would be enabled by default, a user met with = complaints about perfectly fine code will immediately disable the checks = and thus foil our plan to nudge his coding habits in a desirable = direction. I take it that you don't suggest that we skip on loading autoloads = (possibly in the shape of quickstart) though? A bit rough to = byte-compile without those, unless we deprecate autoloads altogether.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 18 Dec 2020 15:22:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 18 10:22:11 2020 Received: from localhost ([127.0.0.1]:39640 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kqHa7-0004Qo-6D for submit <at> debbugs.gnu.org; Fri, 18 Dec 2020 10:22:11 -0500 Received: from mail-oo1-f46.google.com ([209.85.161.46]:36133) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kqHZz-0004QC-Qd for 45198 <at> debbugs.gnu.org; Fri, 18 Dec 2020 10:22:09 -0500 Received: by mail-oo1-f46.google.com with SMTP id j8so627525oon.3 for <45198 <at> debbugs.gnu.org>; Fri, 18 Dec 2020 07:22:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=ylzMn+aEF9dAHuCMkyEfkX3soxLiwfI0nQeLUaXm+b0=; b=X7/mOvpPESzcQ6ZJqKxaMJYbzlhMigyubN34HfxpZUCCQWvL43m0Y4Rpj6DT9SfS6B u6kEgP0Zcu+7V/kcXxxAG7FLG/krWNVZGFcFqNG8u1XRQwC78K4FK6mLO47hJrhh5IYs EF0yAbu4vdASQL2WaR4cxqSTErdMLpwDmFmnaXnSEIZoeW4o8YvisYOH7LIoHmcd0blg 3tABUu+KtCt7yLgMOTCbMbtD5emIrqvNKkOpmNEWwFzjVisxm7zmpmls0gNcQ319LA7U 9Q02qhenXntuKIR9YIEfEcqKecGJEYLbuikjiozjZTAXPJ51tI7AzpsiT726dgX/ll9i IR4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=ylzMn+aEF9dAHuCMkyEfkX3soxLiwfI0nQeLUaXm+b0=; b=bfg8Ozl5Ua4pABnD9Ka2Of6SfQxLAgCDQ1xCMQrBvwCIqCeAca1Wg61Tjqp21ZvTA6 NqZKO6CErT186mRHiuGZh5teCTVqVomnJYk/XY2QJ/JTIsJDKY88CReWSfONJLTRFshB 3C8ljtDnKAKVIJddbgViWQcjVg85miWNnym5ErsSof0r93DdoR5rK4FlUslL6yYlaIIT grz5YnTdNarH0HT0wOGmoY+WTOosvcpikkjDuYKJVTaaQw3eDNVf/LT/aoGZkmjQZsiK m0lR5nYX0JoGgUhOc4zGvj36v3irnIEGyBl6EI+r4iqWjLXrQZSDC5WHu2L99dh1Zshb XjJw== X-Gm-Message-State: AOAM533D7la+IgcdfrfnAjWEPtHQ8vnbAUP82hQk09t3Fjj2o5jiCdFW hEO6YFWcpEomzmtc9RqUoiLssCHLDPTaIKPHD8g= X-Google-Smtp-Source: ABdhPJwwLDcEFlGgSqUJQs3p2mY7xM6S8dzUwCsilia75/obdIj7Z4ulY0dasouMstL0ZAU2BikFmNzdq+niNeitMJ8= X-Received: by 2002:a4a:e8d1:: with SMTP id h17mr3110407ooe.71.1608304917069; Fri, 18 Dec 2020 07:21:57 -0800 (PST) MIME-Version: 1.0 References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> In-Reply-To: <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Fri, 18 Dec 2020 16:21:45 +0100 Message-ID: <CAArVCkTifUSH4n0L4iNho+JdD40FkJ4udvU-jbxM4arTWQ8Vhw@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Do., 17. Dez. 2020 um 18:56 Uhr schrieb Mattias Engdeg=C3=A5rd <mattiase= @acm.org>: > > 17 dec. 2020 kl. 14.08 skrev Philipp Stephani <p.stephani2@HIDDEN>: > > > Dynamic libraries tend to start threads for background work, so while > > there aren't that many, they still exist. > > Well, there's no accounting for taste. Still, I'm not ready to close the = door to possible solutions until they really do appear to lead no way. (It'= s not an urgent concern since we will need a traditional fork-exec solution= first of all.) Yeah, I didn't want to imply to close the door, just to first start with what we need to solve the task at hand. > > > I haven't tried this out yet, but allowing reads from load-path > > entries plus the installation directory should be fine. > > Assuming this is sufficient; I think autoloaded definitions can specify f= iles in arbitrary directories, not necessarily in the load-path. Sure, but things like Flymake byte-compilation are best-effort anyway. It's fine to (at least initially) not cover a few "exotic" cases. > > > Yes, but see my other comment: restricting an open policy after the > > fact is much harder than opening up an initially-restrictive one, so > > I'd really start with a restrictive one (no file reading allowed > > except for allowed directories and files). > > Depends on the platform I suppose -- macOS and BSD should work either way= . On Linux it depends on the method used; I admit not having looked closely= at seccomp lately. Ah, I was talking about the engineering/product management aspect, not about the technical one: If you start with an initially-open sandbox policy, locking it down in future releases is much harder than the other way round. > > > The gains are largely realized using threads these days. > > Indeed, although forking still has a few niche uses. (For there record I'= m a firm believer that the fork-exec model was a mistake from its inception= , but now that it's there...) > > Emacs would be better served with threads, too, if it weren't that (I) we= don't have a good threading story yet and (II) Elisp code can cause way to= o much damage at compile time. Fixing either would bring many other benefit= s! Yeah, and while there are a few ideas (the "web worker" model looks most promising), we're not even close to having a design yet. > > > I'd think that we'd always run the sandboxed Emacs with --quick > > --batch and an empty environment (to provide for some reproducibility > > and avoid LD_PRELOAD attacks etc.), and then startup tends to be fast > > enough (emacs -Q -batch takes ~50 ms on my system). > > That's not quite fair; the byte-compiler needs the right load-path and au= toload definitions, and the byte-compiler itself needs to be loaded as well= . (Anyone who can set LD_PRELOAD already has the machine.) > > The easiest way is to run the user's init file. Perhaps it's possible to = just transmit a list of paths and packages to the subprocess as arguments b= ut the user may have things loaded or defined outside the standard package = manager. > We should be very hesitant to use the easiest way. Often it's the wrong way, and fixing things after the fact tends to be hard. Again, the goal is not to provide a perfect solution that works for all ELisp files, but something that works well for "typical" use cases. We should definitely run the subprocess with --quick --batch and an empty environment by default, not only for security and speed, but also for reproducibility. That's also what Flycheck does (https://github.com/flycheck/flycheck/blob/a11b789807d1d942d6fcfac17508d072= b9cf7ba8/flycheck.el#L8435)
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Dec 2020 17:56:01 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 17 12:56:01 2020 Received: from localhost ([127.0.0.1]:36961 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kpxVQ-000144-Mw for submit <at> debbugs.gnu.org; Thu, 17 Dec 2020 12:56:00 -0500 Received: from mail70c50.megamailservers.eu ([91.136.10.80]:37548) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1kpxVO-00013u-5f for 45198 <at> debbugs.gnu.org; Thu, 17 Dec 2020 12:56:00 -0500 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1608227756; bh=JVq79grn5sYaO8lzjeT2KAae2tU5HjJtriItnpFETig=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=FxShkDelGQ0Ez98qJNW37bVQcxQw7GUDkUTpBu16Ksf0/Zi478Nx3FSG2vD2k5//Z LRGprBZNsS4S4SNom6wZGyoE2S52RENHZY7KGS7Tg02/RdV6gvxSj5QSJg5DAStxDO qwRaA6iA8Lk7CY+4rLNR6aHAX6+PJqi/MsKXhOYY= Feedback-ID: mattiase@HIDDEN Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se [188.150.171.71]) (authenticated bits=0) by mail70c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0BHHtqOu001687; Thu, 17 Dec 2020 17:55:54 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> In-Reply-To: <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> Date: Thu, 17 Dec 2020 18:55:52 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <26556EDE-9133-450F-9181-2859E058677C@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A782F27.5FDB9BAC.000F, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=UIOj4xXy c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=pGLkceISAAAA:8 a=DTTHb2eM3JguN3yHLMoA:9 a=CjuIK1q_8ugA:10 X-Origin-Country: SE X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) 17 dec. 2020 kl. 14.08 skrev Philipp Stephani <p.stephani2@HIDDEN>: > Dynamic libraries tend to start threads for background work, so while > there aren't that many, they still exist. Well, there's no accounting for taste. Still, I'm not ready to close the = door to possible solutions until they really do appear to lead no way. = (It's not an urgent concern since we will need a traditional fork-exec = solution first of all.) > I haven't tried this out yet, but allowing reads from load-path > entries plus the installation directory should be fine. Assuming this is sufficient; I think autoloaded definitions can specify = files in arbitrary directories, not necessarily in the load-path. > Yes, but see my other comment: restricting an open policy after the > fact is much harder than opening up an initially-restrictive one, so > I'd really start with a restrictive one (no file reading allowed > except for allowed directories and files). Depends on the platform I suppose -- macOS and BSD should work either = way. On Linux it depends on the method used; I admit not having looked = closely at seccomp lately. > The gains are largely realized using threads these days. Indeed, although forking still has a few niche uses. (For there record = I'm a firm believer that the fork-exec model was a mistake from its = inception, but now that it's there...) Emacs would be better served with threads, too, if it weren't that (I) = we don't have a good threading story yet and (II) Elisp code can cause = way too much damage at compile time. Fixing either would bring many = other benefits! > I'd think that we'd always run the sandboxed Emacs with --quick > --batch and an empty environment (to provide for some reproducibility > and avoid LD_PRELOAD attacks etc.), and then startup tends to be fast > enough (emacs -Q -batch takes ~50 ms on my system). That's not quite fair; the byte-compiler needs the right load-path and = autoload definitions, and the byte-compiler itself needs to be loaded as = well. (Anyone who can set LD_PRELOAD already has the machine.) The easiest way is to run the user's init file. Perhaps it's possible to = just transmit a list of paths and packages to the subprocess as = arguments but the user may have things loaded or defined outside the = standard package manager.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 17 Dec 2020 13:08:26 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 17 08:08:26 2020 Received: from localhost ([127.0.0.1]:35042 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kpt17-0001dl-Ei for submit <at> debbugs.gnu.org; Thu, 17 Dec 2020 08:08:25 -0500 Received: from mail-ot1-f54.google.com ([209.85.210.54]:35333) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kpt14-0001dU-9j for 45198 <at> debbugs.gnu.org; Thu, 17 Dec 2020 08:08:24 -0500 Received: by mail-ot1-f54.google.com with SMTP id i6so27187159otr.2 for <45198 <at> debbugs.gnu.org>; Thu, 17 Dec 2020 05:08:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=ERpuRURCF52tkm8ZeFhpWXGFRgcXRWNOWpe7PvC9gGo=; b=R3Qqb/fvCknLoVwU6R/lOXomup+owvCUgMD1oTC5ETBYmWH5JKRkE0NV9QCpU6m7wU zK3YUSrhvu9uDSWwR2zeCPQlUY34wzc6SGJb9oDHQx39lASHwHUhr/FiesEoD5iD5DzK AxGErVsa/RlHKP5jALQu8IejWosprJmldKSRCmlpG8k6Cr6nN4Lu0DlLYEt+QPN+36hS ywKcKKbTiiYg2ml0R+SL5B/ojqXXqMdpzIl1F3aAfglfDbEUxczkW9cbszRKMNptBw8C yJpu4ka24GeBy1WAnq3IxPWNk8xABHen+7dw5fwp/qvgRZHLFbhTFskBNfMhPeakPOiX ADFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=ERpuRURCF52tkm8ZeFhpWXGFRgcXRWNOWpe7PvC9gGo=; b=dbwfJ7i+zGg1GVL+mWF09ZwEa8O0q6hl77sMB+kibWdy69sKQRAeLiMuFI5kNQ2toV xrPfl+rI0hKrekIL9pp/cyjyKxlREQmCNsa7r3wCHFr2qD22FjfQrnZzBTaxQRJMhMCT gLoOn6Sm+RZDYRkTC7IhcXnKvKMvKrqnkUQbQuVyx7IvdOzqUbWVwb3kB+z8Deyq9IyE Rpguz3/r6XIQzsyD7zZjHAXROPmYwL4SOUXg5GFdqNBYxwf7+iK3xUAAWhCxe612B1Fz i0aUFTpO+bOFRd3nebHH7WwWDJlWWERKiZxxLoPxcvtT0pxLSw3USTrW1zFkryM1ycXf 5isQ== X-Gm-Message-State: AOAM532x0Y8eBEx7uLTttV2nh6jx1AhzDFDihTmu0SFEvUo1cOnmsB31 kRg3f2nsDd4wShJc66hwkAThqaLPnetEj48AceI= X-Google-Smtp-Source: ABdhPJwRgXB17gpiIMuGynvXdlk5DUpgfQm3weYYqrS0eqdI4Wr15SwQ/IxsSwGOs9J6zfsdvO9eXbaa4MLp0RW9s4M= X-Received: by 2002:a9d:72c4:: with SMTP id d4mr29849025otk.149.1608210496348; Thu, 17 Dec 2020 05:08:16 -0800 (PST) MIME-Version: 1.0 References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> In-Reply-To: <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Thu, 17 Dec 2020 14:08:04 +0100 Message-ID: <CAArVCkTWdYNSe+=uvUMXMe0pcSL+gWsfQW=mVWn3aq5bGF5iTg@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Mo., 14. Dez. 2020 um 16:59 Uhr schrieb Mattias Engdeg=C3=A5rd <mattiase= @acm.org>: > > 14 dec. 2020 kl. 14.44 skrev Philipp Stephani <p.stephani2@HIDDEN>: > > > Yes, it's not strictly required (as in, seccomp and unshare nominally > > work at any point), though I think enabling sandboxing while user code > > has already run can have confusing/unanticipated consequences. For > > example, other threads might already be running in parallel, and they > > would then suddenly be blocked from making some syscalls, potentially > > in the middle of a critical section or similar. > > There shouldn't be many threads running in non-interactive mode, Dynamic libraries tend to start threads for background work, so while there aren't that many, they still exist. > and those that are must be expected to work with the added restrictions b= ecause why should they be exempt and what are they doing that we want to fo= rbid anyway? It seems a bit far-fetched and probably not an immediate conce= rn. Libraries (and Emacs itself) can do arbitrary background processing as an implementation detail, so we'd need to take that into account. I agree though that this isn't a problem in practice, and, if at all, requires some adjustments to the policy. Just do give an example: https://sourceware.org/git/?p=3Dglibc.git;a=3Dblob;f=3Dnptl/pthread_create.= c;h=3Dbad4e57a845bd3148ad634acaaccbea08b04dbbd;hb=3DHEAD#l393 assumes that set_robust_list will work if it worked once. In the case of an Emacs sandbox, threads are started before entering main (through dynamic initialization and dynamic linking), so the function assumes that set_robust_list works. (In that case we can just allow set_robust_list as it's not dangerous.) > > That said, it is very much an implementation matter -- the run-function-i= n-sandbox Lisp interface seems better than the original enter-sandbox becau= se we get more ways to write the code. Thanks for proposing it! Sure, I also don't mind adding a load-seccomp-filter function for post-main invocation. Right now I believe it's not needed though. > > > For example, to achieve some amount of capability-based > > security, you'd open files before sandboxing and then forbid the open > > syscall, but that's not really possible with the current Emacs API > > (which doesn't provide any access to open files). > > Well, almost -- elisp processes serve some of the purposes of open file d= escriptors, at least for pipes and sockets. > > Is it really is practical to restrict file-system visibility? A spawned b= yte-compiler will need to read almost arbitrary elisp files (autoload, 'req= uire' calls) whose exact names are only known at runtime. Were you planning= to build a name-space from a skeleton populated by load-path mounts? I haven't tried this out yet, but allowing reads from load-path entries plus the installation directory should be fine. > > My initial thought was simply inhibit pretty much everything except readi= ng files and writing to already open descriptors (or just stdout/stderr), o= n the grounds that while it would enable an adversary to read anything, exf= iltration would be difficult. Yes, but see my other comment: restricting an open policy after the fact is much harder than opening up an initially-restrictive one, so I'd really start with a restrictive one (no file reading allowed except for allowed directories and files). > > (Some side-channels may be worth thinking about: if the machine cannot tr= ust its file servers, it is possible to exfiltrate data to an already compr= omised server merely by reading. But then there are probably more direct ap= proaches.) > > > Even on Unix, a fork that's not immediately followed by an exec or > > exit tends to not work any more. Lots of libraries nowadays assume > > that the "weird in-between state" after a fork doesn't exist > > permanently, and only a small number of async-signal-safe syscalls are > > guaranteed to work between fork and exec. > > Yes, and I'm aware of the difficulties but wouldn't dismiss it out of han= d since the gains are attractive. The main trouble stems from fork only bri= nging the calling thread into the new process, which may cause deadlock if = those threads were holding locks which the forked process goes on to acquir= e later on. (pthread_atfork is supposed to be used by threaded libraries bu= t typically isn't.) Yes, and because libraries can and do start arbitrary threads, this issue can't really be mitigated and makes fork without exec extremely unsafe and largely useless. The gains are largely realized using threads these days. > > It does work given some care (and I have done so in the past to good effe= ct); it's mainly a matter of not touching anything that you don't want to u= se anyway such as GUI frameworks. In Emacs, this would be done in some sort= of become_noninteractive function which ensures that future program flow w= ill not involve any GUI code whatsoever. I don't think that's enough, even linking against some libraries already causes background threads to spin up. > > Let's see what latency we get from spawning a typically overloaded Emacs = configuration first. > I'd think that we'd always run the sandboxed Emacs with --quick --batch and an empty environment (to provide for some reproducibility and avoid LD_PRELOAD attacks etc.), and then startup tends to be fast enough (emacs -Q -batch takes ~50 ms on my system).
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 14 Dec 2020 15:59:50 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 14 10:59:50 2020 Received: from localhost ([127.0.0.1]:53902 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koqGM-0005v4-BI for submit <at> debbugs.gnu.org; Mon, 14 Dec 2020 10:59:50 -0500 Received: from mail1467c50.megamailservers.eu ([91.136.14.67]:46476 helo=mail268c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1koqGJ-0005up-KE for 45198 <at> debbugs.gnu.org; Mon, 14 Dec 2020 10:59:48 -0500 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1607961581; bh=Oj5Q//4lDswoLErmbEEJih8a143ppiuA1udskDE/56Y=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=C7kiHxyTmuF3FvD39bAgm07RjFCo2wDULZFBBssWq1WJKs6/MI/U/A7uSqtJ8AyK/ dkGvZBdNm5G2YstApeBLgznZ7qBVVt+KIhBqJlz0zRFAmLmVAoTC9D/536RnGFvkUm Yb25MejvoCa+lLD0l6bGBdIlcQnVuhcbBSzhDQ2c= Feedback-ID: mattiase@HIDDEN Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se [188.150.171.71]) (authenticated bits=0) by mail268c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0BEFxS6R018925; Mon, 14 Dec 2020 15:59:36 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> In-Reply-To: <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> Date: Mon, 14 Dec 2020 16:59:28 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <F4789EA5-BCBC-4B10-BA52-3329DB9C9E42@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A782F29.5FD78BEC.004F, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=J+PUEzvS c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=pGLkceISAAAA:8 a=ktOLASWPuep7Hyu_2dEA:9 a=CjuIK1q_8ugA:10 X-Origin-Country: SE X-Spam-Score: 1.4 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 14 dec. 2020 kl. 14.44 skrev Philipp Stephani <p.stephani2@HIDDEN>: > Yes, it's not strictly required (as in, seccomp and unshare nominally > work at any point), though I think enabling sandboxing while user code > has already run can have confusing/unanticipated cons [...] Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) 14 dec. 2020 kl. 14.44 skrev Philipp Stephani <p.stephani2@HIDDEN>: > Yes, it's not strictly required (as in, seccomp and unshare nominally > work at any point), though I think enabling sandboxing while user code > has already run can have confusing/unanticipated consequences. For > example, other threads might already be running in parallel, and they > would then suddenly be blocked from making some syscalls, potentially > in the middle of a critical section or similar. There shouldn't be many threads running in non-interactive mode, and = those that are must be expected to work with the added restrictions = because why should they be exempt and what are they doing that we want = to forbid anyway? It seems a bit far-fetched and probably not an = immediate concern. That said, it is very much an implementation matter -- the = run-function-in-sandbox Lisp interface seems better than the original = enter-sandbox because we get more ways to write the code. Thanks for = proposing it! > For example, to achieve some amount of capability-based > security, you'd open files before sandboxing and then forbid the open > syscall, but that's not really possible with the current Emacs API > (which doesn't provide any access to open files). Well, almost -- elisp processes serve some of the purposes of open file = descriptors, at least for pipes and sockets. Is it really is practical to restrict file-system visibility? A spawned = byte-compiler will need to read almost arbitrary elisp files (autoload, = 'require' calls) whose exact names are only known at runtime. Were you = planning to build a name-space from a skeleton populated by load-path = mounts? My initial thought was simply inhibit pretty much everything except = reading files and writing to already open descriptors (or just = stdout/stderr), on the grounds that while it would enable an adversary = to read anything, exfiltration would be difficult. (Some side-channels may be worth thinking about: if the machine cannot = trust its file servers, it is possible to exfiltrate data to an already = compromised server merely by reading. But then there are probably more = direct approaches.) > Even on Unix, a fork that's not immediately followed by an exec or > exit tends to not work any more. Lots of libraries nowadays assume > that the "weird in-between state" after a fork doesn't exist > permanently, and only a small number of async-signal-safe syscalls are > guaranteed to work between fork and exec. Yes, and I'm aware of the difficulties but wouldn't dismiss it out of = hand since the gains are attractive. The main trouble stems from fork = only bringing the calling thread into the new process, which may cause = deadlock if those threads were holding locks which the forked process = goes on to acquire later on. (pthread_atfork is supposed to be used by = threaded libraries but typically isn't.) It does work given some care (and I have done so in the past to good = effect); it's mainly a matter of not touching anything that you don't = want to use anyway such as GUI frameworks. In Emacs, this would be done = in some sort of become_noninteractive function which ensures that future = program flow will not involve any GUI code whatsoever. Let's see what latency we get from spawning a typically overloaded Emacs = configuration first.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 14 Dec 2020 15:38:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 14 10:38:02 2020 Received: from localhost ([127.0.0.1]:53849 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kopvF-0003Dm-PI for submit <at> debbugs.gnu.org; Mon, 14 Dec 2020 10:38:02 -0500 Received: from mail-oo1-f42.google.com ([209.85.161.42]:40812) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kopvD-0003DU-U5 for 45198 <at> debbugs.gnu.org; Mon, 14 Dec 2020 10:38:00 -0500 Received: by mail-oo1-f42.google.com with SMTP id 9so4035338ooy.7 for <45198 <at> debbugs.gnu.org>; Mon, 14 Dec 2020 07:37:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=E0iEc0rosFKPXqrWtEPjgp5aPAzhaWtsrs1+mwtwc8M=; b=Bbx3s8idf8Xlp9Z3X22cHHSmZ73OImzUw70Zg7pWuqIikH1ydMhFjasl97Xp6woFla zmsRRpcwrGwlz1Bf2h4Dva4Qiprtuk5ZfmgVILMR1QSgo4t/Eg7hdS/1gHazblY9ynB9 7mZyNjGvEepD1BPoOjg6awv1Mp7eBvZLb9WwLEJMVMG0RCcTsdzAzoChomVcQYcSL015 eDxpsPiS+Me7URL/yVmAjWAxGI9DQ6hXDAkm1/b/wQQUjMRqSiFNAi7ELFn5LFFpw34i 0n8rPdtvxJJOs8TSe6/9vFg5/fT9uHCA3SgzKxiV7wiQR8yd9rw1Mm2g1j+pNDq9iJAg VAUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=E0iEc0rosFKPXqrWtEPjgp5aPAzhaWtsrs1+mwtwc8M=; b=Vox2b056zRp0ujWWPAbuIZKrDm3Q4b3Z61oU85viE1m2ErKDnnpkkEvO06k4aWP1f2 60HWwmnatNaDxTYe3n3gaA9wPTb++V7RDglech+2u9Ex5qg5C0jJnLOKxq9SXu3T8Qu6 aNvRjIxCG5SxoHWIrSpMbMzyx0wqf1fC89vNspCIKym0b3p37WEv+8mFay9RnSlYfFIL ONzgz2Xx/cn0OQlJ+fh66Yl+jyS0Yu99O4iKOXG8TGizuIFRsAYJmTzbMtjRyJf4v9pR pqyQWLUsF2j4J+9zobTq1oAZW1IOQwmFGZA4PZpC061+NjmPWoBbysFW7dJWfyR7ut6r Q1KQ== X-Gm-Message-State: AOAM531p9R5ANf4kkF5dXrxWQQhWsygYj8vC8tWmRr2Dz0nm5YClmrzJ a6Py1iozJ/XENcY7hdFqz0UoE9GEQxaEN8H+Oew= X-Google-Smtp-Source: ABdhPJy4fK82LyyIhQ9lvvde6iEsjhhsCkpu4FgeQSIi3MaeThbNrshTgpqAJ4uWuzJMdDlU3ugFTh+bhc1/dSzDHDg= X-Received: by 2002:a4a:e8d1:: with SMTP id h17mr2805453ooe.71.1607960273852; Mon, 14 Dec 2020 07:37:53 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> <jwv4kkoiim5.fsf-monnier+emacs@HIDDEN> In-Reply-To: <jwv4kkoiim5.fsf-monnier+emacs@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Mon, 14 Dec 2020 16:37:42 +0100 Message-ID: <CAArVCkSAzA81Y0j_zcne+jMm+_ox-vDEhHwBNQqOtg5vtVwuvg@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Mo., 14. Dez. 2020 um 15:44 Uhr schrieb Stefan Monnier <monnier@HIDDEN>: > > > In some way certainly, but it's not necessarily through stdout. I tend > > to write potential output into a file whose filename is passed on the > > command line. That's more robust than stdout (which often contains > > spurious messages about loading files etc). > > Hmm... but that requires write access to some part of the file system, > so it requires a finer granularity of control. When using mount namespaces, that comes at a low cost: you mount exactly those files that you want to write as writable filesystems, and read-only files as read-only. > I'd much rather limit > the output to something equivalent to a pipe (the implementation of the > sandboxing doesn't have to use stdout for that if that's a problem). It's definitely true that only accessing open file descriptors is more secure and simpler ("capability-based security"). However, I assume that generic Elisp code doesn't work too well if it can't do things like create temporary files. I've found 211 calls to make-temp-file in the Emacs codebase alone, and I'd be surprised if none of them were applicable to sandboxed processes. > > >> Also, I think the async option is the most important one. How 'bout: > >> (sandbox-start FUNCTION) > >> Lunch a sandboxed Emacs subprocess running FUNCTION. > > Passing a function here might be confusing because e.g. lexical > > closures won't work. > > What makes you think they don't? Hmm, you mean printing and reading closure objects? It might work, though I don't know how portable/robust it is. > > > It might be preferable to pass a form and state > > that both dynamic and lexical bindings are ignored. > > If closures turn out to be a problem I'd rather use FUNCTION + VALUES > than FORM (using FORM implies the use of `eval`, and you have to think > of all those kitten that'll suffer if we do that). It is always eval, because that's how Elisp works. How else would you deserialize and execute code than with read + eval? > > >> Returns a process object. > > Depending how much we care about forward compatibility, it might be > > better to return an opaque sandbox object (which will initially wrap a > > process object). > > We always use process objects to represent file-descriptors, so I can't > find any good reason why this one should be different or why an > implementation might find it difficult to expose a process object. That's a fair point, but when thinking about forwards-compatibility we might want to anticipate reasons that we currently can't think of. > > >> FUNCTION is called with no arguments and it can use `sandbox-read` > >> to read the data sent to the process object via `process-send-string`, > >> and `sandbox-reply` to send back a reply to the parent process > >> (which will receive it via its `process-filter`). > > That is, sandbox-read and sandbox-reply just read/write stdin/stdout? > > While it may use stdin/stdout internally, I can imagine good reasons why > we'd want to use some other file descriptors. If the process can write to stdout, then users will do that. Users would probably just try whether 'print' works, and use it if it does. So if you want a specialized function, then we'd need to make sure that 'print' doesn't work (e.g. by having the parent process only read the new pipe). > > > That would certainly work, but (a) it doesn't really have anything to > > do with sandboxing, so these functions should rather be called > > stdin-read and stdout-write or similar, > > I think "the right thing" would be to represent the parent as a process > object inside the child. I proposed dedicated functions only because > but when it uses stdin/stdout, providing a process object seems awkward > to implement. It would be a file descriptor in all cases, so we might as well use a pipe process (and introduce a function to write to a pipe). Stdout isn't really different from other open file descriptors. We'd need some special support for other file descriptors though, as we'd need to make sure to not open them with O_CLOEXEC. > > >> The sandboxed process has read access to all the local files > >> but no write access to them, nor any access to the network or > >> the display. > > This might be a bit too specific. I'd imagine we'd want to restrict > > reading files to the absolute minimum (files that Emacs itself needs > > plus a fixed set of input files/directories known in advance), but > > often allow writing some output files. > > I'm trying to design an API which can be made to work in as many > circumstances as possible without imposing too high a maintenance > burden. So while I agree that it'd be better to limit the set of files > that can be read and to allow writing to some files, I think I'd rather > start with something more crude. > > We can refine it later if/when we have more experience with how it's > used, and how it's implemented in the various OSes. Even without specific experience, we can definitely say that restricting something later is much harder than lifting restrictions. So if we'd start with a policy that allows full read access, we'd have a very hard time restricting that later. IOW, I'd be fine with not providing write access to files (with the exception of maybe a process-local tmpfs), but I'd try to restrict reading right from the start to the installation directory and other known sources like the load path. > > >> >> - I suspect we'll still want to use the extra "manual" checks I put in > >> >> my code (so as to get clean ELisp errors when bumping against the > >> >> walls of the sandbox, and because of the added in-depth security). > >> > That's reasonable, though I'm worried that it will give users a false > >> > sense of security. > >> That would only be the case if we don't additionally use process-level > >> isolation, right? > > My worry is that people see a function like enter-sandbox and then > > assume that Emacs will be secure after calling it, without actually > > verifying the security implications. > > This seems universally true and hence suggests we should just forget > about this idea of providing a sandbox functionality. IOW I'm not sure > what this has to do with the `ensure_no_sandbox` calls I'm suggesting > we keep. Seccomp and namespaces are battle-tested kernel-level security features. If we use them, we'll have a much better chance at providing an actually secure sandbox. > > > I've looked into this, and what I'd suggest for now is: > > 1. Add a --seccomp=FILE command-line option that loads seccomp filters > > from FILE and applies them directly after startup (first thing in > > main). Why do this in Emacs? Because that's the easiest way to prevent > > execve. When installing a seccomp filter in a separate process, execve > > needs to be allowed because otherwise there'd be no way to execute the > > Emacs binary. While there are workarounds (ptrace, LD_PRELOAD), it's > > easiest to install the seccomp filter directly in the Emacs process. > > 2. Generate appropriate seccomp filters using libseccomp or similar. > > 3. In the sandboxing functions, start Emacs with bwrap to set up > > namespaces and invoke Emacs with the new --seccomp flag. > > Sounds OK, tho I must say I don't understand why we care particularly > about disallowing execve inside the bwrap jail. AFAIK anything that an > external process can do can also be done directly by Emacs since ELisp > is a fairly fully-featured language (since there's nothing like setuid > inside a bwrap jail). I mean, I agree that we want to disallow running > subprocesses, but can't think of a good reason why we would need this to > be 100%, so we could rely on `ensure_no_sandbox` for that. It's basically just another way to make the attack surface smaller and provide defense in depth. If we allow execve, then suddenly the attack surface increases to include all possible binaries that Emacs might execute. I've implemented the --seccomp flag, and it's really benign - mapping the input file plus one or two syscalls. It's also strictly optional and doesn't preclude using other technologies.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 14 Dec 2020 14:48:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 14 09:48:57 2020 Received: from localhost ([127.0.0.1]:51689 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kop9l-0001R4-Gn for submit <at> debbugs.gnu.org; Mon, 14 Dec 2020 09:48:57 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:63864) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1kop9j-0001Qq-Qd for 45198 <at> debbugs.gnu.org; Mon, 14 Dec 2020 09:48:56 -0500 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 7FBB280967; Mon, 14 Dec 2020 09:48:50 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 36ED780904; Mon, 14 Dec 2020 09:48:49 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607957329; bh=jsw4TqrMyZvUVgKKJRm1lFRRvHciN4k6p4IljXQNDDw=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=T9gCBGn+neUY6xD6XJ0g3QrWCUlZXMWt6U1w4y5pJ3w599QSQVH0u7Ek8yQMWbiMo gI18Y6KKS9/AiBAw/rrO/9WtJiVvb8nTE0RD1/i47xOEp9a6men31/+y3CV/Nc3D42 1ZKDDjbMfA3CLgzkmgJQRWg0mVHcT0FyV2FPiMCvrgbuv58zh/GmgLFdLrsTYNe3W3 o5Seittnx2jbScxxbDLq+0t2JzT7k5B/Ye7IUFkodf9RPscozF2fC3pzBhENg2KFRP 1coIvd7LfDjBaY1ON/hwJ5640zNxkRwYrWWuZIxtcxBn6G7FfPpHYe4MCJNGeiVTlY ZKU28970CIbMw== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id E846E12023D; Mon, 14 Dec 2020 09:48:48 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwvy2i0h2dj.fsf-monnier+emacs@HIDDEN> References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> Date: Mon, 14 Dec 2020 09:48:47 -0500 In-Reply-To: <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> (Philipp Stephani's message of "Mon, 14 Dec 2020 14:44:25 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.064 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, Mattias =?windows-1252?Q?Engdeg=E5rd?= <mattiase@HIDDEN>, 45198 <at> debbugs.gnu.org, =?windows-1252?B?Sm/jbyBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > namespace also don't work in multithreaded processes. Allowing > sandboxing (at least for now) only at process startup avoids such > issues and should be good enough for the given use case (Flymake > background compilation), since we need to start a new process anyway. BTW, while flymake does already use a background process, I think there's a deeper reason why we'll always need a separate process: there's no way to exit a sandbox. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 14 Dec 2020 14:44:42 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 14 09:44:41 2020 Received: from localhost ([127.0.0.1]:51680 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kop5d-0001K2-Gq for submit <at> debbugs.gnu.org; Mon, 14 Dec 2020 09:44:41 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:9514) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1kop5b-0001Jq-LQ for 45198 <at> debbugs.gnu.org; Mon, 14 Dec 2020 09:44:40 -0500 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id EC8F68090B; Mon, 14 Dec 2020 09:44:33 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 0460680085; Mon, 14 Dec 2020 09:44:32 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607957072; bh=aZ5BxGEzROpTuBb7t+uhCXQSxYPcNQcxWwozLgGass8=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=fG+kutwutPNzN6ZONzFA9h4X1Vba6wG3nxCPQC/qRjA5IwRgA56k+i6RxCNFhqQeJ j687HMSVnnHiIclCa0bqf9+DKP5yTVcTKi8nxKJdHQZtONcWiX0MFQKANzIzrZuh1K uf/nsXOLxcsI/9Bd50Ltt60bbJUg+trOhc7hDTJIN2Q9c5pS2Z1235tnBOtAWCB7pw fgpNUQZCEO3npUaBcRtILCkdSLiRLAww2eOpH4+eEOKN8BkavfZAontD0JT4ODOYX5 Q2npyCuuXN46lrnuILKsFX78zFk0YLseYyPrc6MuPfortGliUMxUqwUNSYyyZvD7iC BRShrwvMsg59A== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id BE1C11203AB; Mon, 14 Dec 2020 09:44:31 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwv4kkoiim5.fsf-monnier+emacs@HIDDEN> References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> Date: Mon, 14 Dec 2020 09:44:30 -0500 In-Reply-To: <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> (Philipp Stephani's message of "Mon, 14 Dec 2020 12:05:09 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.065 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?windows-1252?B?Sm/j?= =?windows-1252?B?byBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > In some way certainly, but it's not necessarily through stdout. I tend > to write potential output into a file whose filename is passed on the > command line. That's more robust than stdout (which often contains > spurious messages about loading files etc). Hmm... but that requires write access to some part of the file system, so it requires a finer granularity of control. I'd much rather limit the output to something equivalent to a pipe (the implementation of the sandboxing doesn't have to use stdout for that if that's a problem). >> Also, I think the async option is the most important one. How 'bout: >> (sandbox-start FUNCTION) >> Lunch a sandboxed Emacs subprocess running FUNCTION. > Passing a function here might be confusing because e.g. lexical > closures won't work. What makes you think they don't? > It might be preferable to pass a form and state > that both dynamic and lexical bindings are ignored. If closures turn out to be a problem I'd rather use FUNCTION + VALUES than FORM (using FORM implies the use of `eval`, and you have to think of all those kitten that'll suffer if we do that). >> Returns a process object. > Depending how much we care about forward compatibility, it might be > better to return an opaque sandbox object (which will initially wrap a > process object). We always use process objects to represent file-descriptors, so I can't find any good reason why this one should be different or why an implementation might find it difficult to expose a process object. >> FUNCTION is called with no arguments and it can use `sandbox-read` >> to read the data sent to the process object via `process-send-string`, >> and `sandbox-reply` to send back a reply to the parent process >> (which will receive it via its `process-filter`). > That is, sandbox-read and sandbox-reply just read/write stdin/stdout? While it may use stdin/stdout internally, I can imagine good reasons why we'd want to use some other file descriptors. > That would certainly work, but (a) it doesn't really have anything to > do with sandboxing, so these functions should rather be called > stdin-read and stdout-write or similar, I think "the right thing" would be to represent the parent as a process object inside the child. I proposed dedicated functions only because but when it uses stdin/stdout, providing a process object seems awkward to implement. >> The sandboxed process has read access to all the local files >> but no write access to them, nor any access to the network or >> the display. > This might be a bit too specific. I'd imagine we'd want to restrict > reading files to the absolute minimum (files that Emacs itself needs > plus a fixed set of input files/directories known in advance), but > often allow writing some output files. I'm trying to design an API which can be made to work in as many circumstances as possible without imposing too high a maintenance burden. So while I agree that it'd be better to limit the set of files that can be read and to allow writing to some files, I think I'd rather start with something more crude. We can refine it later if/when we have more experience with how it's used, and how it's implemented in the various OSes. >> >> - I suspect we'll still want to use the extra "manual" checks I put in >> >> my code (so as to get clean ELisp errors when bumping against the >> >> walls of the sandbox, and because of the added in-depth security). >> > That's reasonable, though I'm worried that it will give users a false >> > sense of security. >> That would only be the case if we don't additionally use process-level >> isolation, right? > My worry is that people see a function like enter-sandbox and then > assume that Emacs will be secure after calling it, without actually > verifying the security implications. This seems universally true and hence suggests we should just forget about this idea of providing a sandbox functionality. IOW I'm not sure what this has to do with the `ensure_no_sandbox` calls I'm suggesting we keep. > I've looked into this, and what I'd suggest for now is: > 1. Add a --seccomp=FILE command-line option that loads seccomp filters > from FILE and applies them directly after startup (first thing in > main). Why do this in Emacs? Because that's the easiest way to prevent > execve. When installing a seccomp filter in a separate process, execve > needs to be allowed because otherwise there'd be no way to execute the > Emacs binary. While there are workarounds (ptrace, LD_PRELOAD), it's > easiest to install the seccomp filter directly in the Emacs process. > 2. Generate appropriate seccomp filters using libseccomp or similar. > 3. In the sandboxing functions, start Emacs with bwrap to set up > namespaces and invoke Emacs with the new --seccomp flag. Sounds OK, tho I must say I don't understand why we care particularly about disallowing execve inside the bwrap jail. AFAIK anything that an external process can do can also be done directly by Emacs since ELisp is a fairly fully-featured language (since there's nothing like setuid inside a bwrap jail). I mean, I agree that we want to disallow running subprocesses, but can't think of a good reason why we would need this to be 100%, so we could rely on `ensure_no_sandbox` for that. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 14 Dec 2020 13:44:44 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 14 08:44:44 2020 Received: from localhost ([127.0.0.1]:51623 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koo9b-0008EG-Vp for submit <at> debbugs.gnu.org; Mon, 14 Dec 2020 08:44:44 -0500 Received: from mail-ot1-f68.google.com ([209.85.210.68]:45030) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1koo9a-0008E4-Qp for 45198 <at> debbugs.gnu.org; Mon, 14 Dec 2020 08:44:43 -0500 Received: by mail-ot1-f68.google.com with SMTP id f16so15684792otl.11 for <45198 <at> debbugs.gnu.org>; Mon, 14 Dec 2020 05:44:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=B4X35+dCh66GLhjJLrDaEmWkU4PBMcqZb4KydkQDfPI=; b=P/eDWQpS6niuvxbjQZPBPbTwIDShIJBUA0RUHq7Z64CmzEywr2VJ4NRuoykvxbDLap 2tevc8kWvXLmuoWvApAFiyPQ2W1IH8fsv/QpnuDcx9TEFgU/530J5Fm8UYRwzlE5RwU0 fyzWswhpnZkxPN32YNzsiWoLbGTnoTkJqsnMfW/4CDFingAuh1D0W+FFdt2z5vAhDZ87 VNNuTAXLIH4k+gy4xckKkfSIpxkwTgvYsMJtVwD2CpT3I2z7WUsx7yhD+RTIKvalni79 7FzlT+2ntxe2yLfX7kSwRx0BwVkX9n2pfaJudMxA01m3auB5MCJhtAjq0yb217qtkmMB w/YQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=B4X35+dCh66GLhjJLrDaEmWkU4PBMcqZb4KydkQDfPI=; b=mqOGJr3ChOE0tpGIANqH6MDPWAj3j/pXGYVBuPMVuCpT0QABi4NOcjvMqAgmmZ+ORh cVBxq0zheIceEOHVaWr4RXpV/sYtbtCIlyO9PG05cgRymrdtTBrsEKzNJ91j4m4FdkWR bieRSWUIZfj2Y8zcJYkmNVfXSO5XIPh4/FfiSbq0QYvXbdhe/TL8hCeXIev1J1xD/QmC BcFuHBb3RmTf43a6mCQ5vREdMn+Uf+cNdzqQqpjy+8OqWv1fj3k7PdGNHR4xjNRkVtIJ 6Ze9n22h5ZU0/vifWQmOgbu31kuxuKfSnri41Ka/tFOb26/aLA79KxmmacvxQUIQ4dP0 ZFwQ== X-Gm-Message-State: AOAM531JLN5rWfyAgYZSDd7fOvrY7Gw89SlYliAzBNYc5RVvXi2S2XDn QBTzfquRTMvtbLqnMZHIHWO45E/5fb42tiRB850= X-Google-Smtp-Source: ABdhPJz2othmtOzyrP81+hZ5Cta/xJ0N43poJ7XsA2YWAcI717AwZwz2ESDsaC8u4aBPmR/hTATtPSTHExGIn3mzqTk= X-Received: by 2002:a9d:269:: with SMTP id 96mr19220077otb.174.1607953476769; Mon, 14 Dec 2020 05:44:36 -0800 (PST) MIME-Version: 1.0 References: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> In-Reply-To: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Mon, 14 Dec 2020 14:44:25 +0100 Message-ID: <CAArVCkT0bA+5tqgMZrf1-cuenZi0v2mwY=LLZDXPJbRjtKFCuw@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am Mo., 14. Dez. 2020 um 12:12 Uhr schrieb Mattias Engdeg=C3=A5rd <mattiase= @acm.org>: > > > The sandboxing technologies I'm aware of are process-based (because Lin= ux namespaces and kernel syscall filters are per-process), so a "start sand= box from here" function likely can't be implemented. The interface should r= ather be something like > > If you mean that the sandbox needs to be active from the very start of th= e process, I don't see why that has to be the case. It does not appear to b= e necessary for macOS, OpenBSD or FreeBSD, nor for at least some the Linux = options I'm aware of. Yes, it's not strictly required (as in, seccomp and unshare nominally work at any point), though I think enabling sandboxing while user code has already run can have confusing/unanticipated consequences. For example, other threads might already be running in parallel, and they would then suddenly be blocked from making some syscalls, potentially in the middle of a critical section or similar. I'd expect that there's lots of code around that doesn't expect syscalls to suddenly start failing. Other sandboxing technologies like unsharing the user namespace also don't work in multithreaded processes. Allowing sandboxing (at least for now) only at process startup avoids such issues and should be good enough for the given use case (Flymake background compilation), since we need to start a new process anyway. > > Perhaps I misunderstood, and there may indeed be some desirable sandboxin= g methods that require from-exec sandboxing. It is often useful to allow fo= r a set-up period prior to activating restrictions allowing for specific fi= les to be opened and so on and can make the sandboxing itself simpler by be= ing less selective. That is true, though it would require more significant changes to Emacs. For example, to achieve some amount of capability-based security, you'd open files before sandboxing and then forbid the open syscall, but that's not really possible with the current Emacs API (which doesn't provide any access to open files). > > From-exec sandboxing also precludes using simple forking (without exec) a= s a cheap way to start the Emacs subprocess (if somewhat Unix-specific). > Even on Unix, a fork that's not immediately followed by an exec or exit tends to not work any more. Lots of libraries nowadays assume that the "weird in-between state" after a fork doesn't exist permanently, and only a small number of async-signal-safe syscalls are guaranteed to work between fork and exec.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 14 Dec 2020 11:12:51 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 14 06:12:51 2020 Received: from localhost ([127.0.0.1]:51391 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kolmc-00007K-Vo for submit <at> debbugs.gnu.org; Mon, 14 Dec 2020 06:12:51 -0500 Received: from mail18c50.megamailservers.eu ([91.136.10.28]:54854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1kolma-00007A-DL for 45198 <at> debbugs.gnu.org; Mon, 14 Dec 2020 06:12:49 -0500 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1607944367; bh=ngYX7L/8giwQ54bAcIyibDNv6x9topyigBIDb/7HlhY=; h=From:Subject:Date:Cc:To:From; b=KA1digJZZwMqRQ7HOZ4V3wUxYosFec9PCEpC3ejmadH6N7OP56T5rOiiY/H/XPHrx pDpykYrjXZZ960FQOE3vDxWaUq5d7yFout+OnuZq3Ctm0nbykHHT0+BQ9K9tAkrYWB o5nLGZg0qTE41SD5baeCKNneKQD+iyEKDPKUJCoQ= Feedback-ID: mattiase@HIDDEN Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se [188.150.171.71]) (authenticated bits=0) by mail18c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0BEBCiaD031132; Mon, 14 Dec 2020 11:12:45 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-Id: <0917E396-F78C-45BF-8A1F-5C23CA722D9A@HIDDEN> Date: Mon, 14 Dec 2020 12:12:43 +0100 To: Philipp Stephani <p.stephani2@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A782F29.5FD748AE.00D9, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=e5N4tph/ c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=YIQCrXZNxxJIYbJI_LoA:9 a=CjuIK1q_8ugA:10 X-Origin-Country: SE X-Spam-Score: 4.1 (++++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > The sandboxing technologies I'm aware of are process-based (because Linux namespaces and kernel syscall filters are per-process), so a "start sandbox from here" function likely can't be implemented. [...] Content analysis details: (4.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 3.1 FAKE_REPLY_B No description available. X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 3.1 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > The sandboxing technologies I'm aware of are process-based (because Linux namespaces and kernel syscall filters are per-process), so a "start sandbox from here" function likely can't be implemented. [...] Content analysis details: (3.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 3.1 FAKE_REPLY_B No description available. > The sandboxing technologies I'm aware of are process-based (because = Linux namespaces and kernel syscall filters are per-process), so a = "start sandbox from here" function likely can't be implemented. The = interface should rather be something like=20 If you mean that the sandbox needs to be active from the very start of = the process, I don't see why that has to be the case. It does not appear = to be necessary for macOS, OpenBSD or FreeBSD, nor for at least some the = Linux options I'm aware of. Perhaps I misunderstood, and there may indeed be some desirable = sandboxing methods that require from-exec sandboxing. It is often useful = to allow for a set-up period prior to activating restrictions allowing = for specific files to be opened and so on and can make the sandboxing = itself simpler by being less selective. From-exec sandboxing also precludes using simple forking (without exec) = as a cheap way to start the Emacs subprocess (if somewhat = Unix-specific).
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 14 Dec 2020 11:05:28 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 14 06:05:28 2020 Received: from localhost ([127.0.0.1]:51377 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kolfT-0008Nc-Tl for submit <at> debbugs.gnu.org; Mon, 14 Dec 2020 06:05:28 -0500 Received: from mail-oi1-f170.google.com ([209.85.167.170]:42646) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1kolfR-0008NP-W2 for 45198 <at> debbugs.gnu.org; Mon, 14 Dec 2020 06:05:26 -0500 Received: by mail-oi1-f170.google.com with SMTP id l200so18732901oig.9 for <45198 <at> debbugs.gnu.org>; Mon, 14 Dec 2020 03:05:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=0UeIQSmyHCrfPbxPyKyCUMo/yT6Jplt4z6y+Ji8Bv5Y=; b=kxUDZ3eI3ypRjUGdb84Iw6KM6PnCEwpUtIKlN8SA8YSPg1SbvwcdjwuqjS7P+PlJ9j yaXNn3nTmRsNLSHQY/1B8TfR7uXonFa1Khw3MnBaEl+M057MCOZtQoP8GvNPFFHo+k9S AAcvgjUjwWvC9x8o6pOtrAvcst/C1dpIxkrjyUyJhUGmHN95mOPXq3Fc5+Nbi99uHlnC VtGHp55my4oKirtgaQ3j5GFmJzGsjiUnI9P/l31bwcxq7SeUa6NcTPLNx8I1F/HW+KFP RX3yLFWC4AqkwBKJTXrmMhelwx6PbU8bsIl0ZKQ/GYrQelsYNbM391CurOH956Wl5QwQ h6fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0UeIQSmyHCrfPbxPyKyCUMo/yT6Jplt4z6y+Ji8Bv5Y=; b=sTF9cfTCxlpq976+9kHXTz6tAQoY7FNytx1sZU+w02OkH1RkQicgcsFZFAIGulxNvt zchEQiE2vImNhEKRigh5JEjACFVjwyd77Eg9Z7lsjM3pEJyYiwJJBZp8RQXHvCaDpuZP k6cuZstPdK6LQWA/BIY5Wy4d9AmOGzudMpWAO5rUgomrUBQaq8xfYwOeeHi1YVEM9/b7 pE38I9IV+DUxjqZusiCceuOnfeySjvRVHVBQCNkLmN99fBuQtMmtSYf2P3tvOWJKIIdo zPkaUCTNE5PKRLvWWhKFNeOUSzRStHlA4WakKCqX4Al9tGtdB7S/is/Xqm8fHLeFPvBw KBLw== X-Gm-Message-State: AOAM531vauqIeKsoPqyWlwAPrIJEOp8k+gWd13L0nE6ldZKdx/N/G3Mg qCBxDMpwZrA8lw9vu6nn+g7N2U9gZRAaV1T+eRU= X-Google-Smtp-Source: ABdhPJyZcpuph/6k3Ty2LjKLFYtAU6xRpWrmdPAbuxDmwQWRDNf+WZFyLK9FpM/NlEmbWb9iSi9wSkvxTVgnJdKq/oc= X-Received: by 2002:aca:3a02:: with SMTP id h2mr17041529oia.65.1607943920185; Mon, 14 Dec 2020 03:05:20 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> In-Reply-To: <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Mon, 14 Dec 2020 12:05:09 +0100 Message-ID: <CAArVCkRahKpNVNQXsA_bYMoso-eQwy6b=LnaNTG9BtrJ0cMi1g@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am So., 13. Dez. 2020 um 19:43 Uhr schrieb Stefan Monnier <monnier@HIDDEN>: > > > The sandboxing technologies I'm aware of are process-based (because > > Linux namespaces and kernel syscall filters are per-process), so a > > "start sandbox from here" function likely can't be implemented. The > > interface should rather be something like > > > > (defun run-in-sandbox (form) > > (eql 0 (call-process "bwrap" ... "emacs" "--quick" "--batch" (format > > "--eval=%S" form)))) > > > > (Maybe with some async variant and the opportunity to return some > > result, like emacs-async.) > > Thanks. We definitely want some output, otherwise there's no point in > running `form`, right? In some way certainly, but it's not necessarily through stdout. I tend to write potential output into a file whose filename is passed on the command line. That's more robust than stdout (which often contains spurious messages about loading files etc.). > > Also, I think the async option is the most important one. How 'bout: > > (sandbox-start FUNCTION) > > Lunch a sandboxed Emacs subprocess running FUNCTION. Passing a function here might be confusing because e.g. lexical closures won't work. It might be preferable to pass a form and state that both dynamic and lexical bindings are ignored. > Returns a process object. Depending how much we care about forward compatibility, it might be better to return an opaque sandbox object (which will initially wrap a process object). > FUNCTION is called with no arguments and it can use `sandbox-read` > to read the data sent to the process object via `process-send-string`, > and `sandbox-reply` to send back a reply to the parent process > (which will receive it via its `process-filter`). That is, sandbox-read and sandbox-reply just read/write stdin/stdout? That would certainly work, but (a) it doesn't really have anything to do with sandboxing, so these functions should rather be called stdin-read and stdout-write or similar, and (b) especially in the stdout case might be too brittle because Emacs likes to print arbitrary stuff on stdout/stderr. Alternatively, the sandbox could use dedicated files or pipes to communicate. > The sandboxed process has read access to all the local files > but no write access to them, nor any access to the network or > the display. This might be a bit too specific. I'd imagine we'd want to restrict reading files to the absolute minimum (files that Emacs itself needs plus a fixed set of input files/directories known in advance), but often allow writing some output files. > > WDYT? I think the interface is mostly OK, but I think we want to restrict the set of allowed input/output files. > > >> - I suspect we'll still want to use the extra "manual" checks I put in > >> my code (so as to get clean ELisp errors when bumping against the > >> walls of the sandbox, and because of the added in-depth security). > > That's reasonable, though I'm worried that it will give users a false > > sense of security. > > That would only be the case if we don't additionally use process-level > isolation, right? My worry is that people see a function like enter-sandbox and then assume that Emacs will be secure after calling it, without actually verifying the security implications. > > >> - This will need someone else doing the implementation. > > Looks like we already have a volunteer for macOS. > > For Linux, this shouldn't be that difficult either. The sandbox needs > > to install a mount namespace that only allows read access to Emacs's > > installation directory plus any input file and write access to known > > output files, and enable syscall filters that forbid everything except > > a list of known-safe syscalls (especially exec). I can take a stab at > > that, but I can't promise anything ;-) > > Looking forward to it. > I've looked into this, and what I'd suggest for now is: 1. Add a --seccomp=FILE command-line option that loads seccomp filters from FILE and applies them directly after startup (first thing in main). Why do this in Emacs? Because that's the easiest way to prevent execve. When installing a seccomp filter in a separate process, execve needs to be allowed because otherwise there'd be no way to execute the Emacs binary. While there are workarounds (ptrace, LD_PRELOAD), it's easiest to install the seccomp filter directly in the Emacs process. 2. Generate appropriate seccomp filters using libseccomp or similar. 3. In the sandboxing functions, start Emacs with bwrap to set up namespaces and invoke Emacs with the new --seccomp flag.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 20:13:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 13 15:13:27 2020 Received: from localhost ([127.0.0.1]:50431 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koXkF-0002bp-Cu for submit <at> debbugs.gnu.org; Sun, 13 Dec 2020 15:13:27 -0500 Received: from mail-wm1-f47.google.com ([209.85.128.47]:52879) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <joaotavora@HIDDEN>) id 1koXkD-0002bL-Vy for 45198 <at> debbugs.gnu.org; Sun, 13 Dec 2020 15:13:26 -0500 Received: by mail-wm1-f47.google.com with SMTP id a6so11942615wmc.2 for <45198 <at> debbugs.gnu.org>; Sun, 13 Dec 2020 12:13:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=LlgXtqBosNWZ5pp6vxtg+Lx374NQLUhAsVtUsFfZ8kU=; b=P32Z1JMhWCSRkVDKSIN1y69TE85ewNMhWKIT6egGgWTRUk57LOX/+s0mZK2q91qtZM 96+V0M/E110RARy0H8dOFdDUF2oRzbT+MrqEy1PWpt2ehnsJ2GdgUi4opQogbJNuunpd uHCCXL1lB5w5XzPpiIF16GV8uLyO66WAGbT6Xz+x4lWL0oBHgVfoabVAy5hiY1eRKJXB Pprn5sAmEzCjEwfiC8Kx2e9FCk520S8FaATlnmgQTnr+ah8zRs3ZPhuoQSAJB+SZpA6g LaL44E6PIVh4PcHtaOj7ib3LRM6gL1PUCwck/Foog7WttkgE1O5g8fKnugAIm1g1nJlo 4E+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=LlgXtqBosNWZ5pp6vxtg+Lx374NQLUhAsVtUsFfZ8kU=; b=bY4Z0kHCLjjO4ijVygtQP5KiZdHpB2VbyVpZ+Vmnnw9m7CpfcrvUxZ3JFmZu8Ebl5Y TkCoos+GWc5fH+HhPOfh37Bi0gFKzmgj6nR4uQnIJuu8SaF0BuW8m3yKsci+soc/B6Ln 3zc3pzsInOxH2LLC3WF0XEgRlT9ZcudUD3tc9j6QNQd+IzSGluTG/liJNg/uwMZwjc4m PRSQr+jmZzBpp5YBVHORd4cdlLti08LYeiVg2YuG7IxEQQRtlsV/TAiVzb7tcMvU8vSv R/nfcq9A8GpZpdAUyJoEWm5+9XrV5ILHqEz7Y76ZNI4ekPH3zJw0tnc9AVj4UeyI1mah p2vw== X-Gm-Message-State: AOAM532QXROWgNGPLXegqr+8wJCAYlpOUkHVJJLBGl0hV0WF2mBb1x/6 Se9vd86PNtt+8o4yCQDiSS4= X-Google-Smtp-Source: ABdhPJzwxw/8OH4lYs/5i2fdCegAGrCIhEQ2taZPnZaPmvEkPhtk7Hn1idNjVya0mzhD8Q7triF1eg== X-Received: by 2002:a1c:c2d4:: with SMTP id s203mr24397477wmf.58.1607890400186; Sun, 13 Dec 2020 12:13:20 -0800 (PST) Received: from krug (a94-133-30-26.cpe.netcabo.pt. [94.133.30.26]) by smtp.gmail.com with ESMTPSA id g184sm28655499wma.16.2020.12.13.12.13.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Dec 2020 12:13:18 -0800 (PST) From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> Date: Sun, 13 Dec 2020 20:13:16 +0000 In-Reply-To: <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> (Stefan Monnier's message of "Sun, 13 Dec 2020 12:57:25 -0500") Message-ID: <87mtyhzcpv.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, Philipp Stephani <p.stephani2@HIDDEN>, 45198 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Monnier <monnier@HIDDEN> writes: >> I don't think such an approach can work. It assumes perfect knowledge >> about anything that might be problematic, and also assumes that all >> future changes to Emacs take the sandbox question into account. >> Especially the latter point seems unrealistic, and this looks like a >> security incident waiting to happen. > > That's true for the implementation side. > How 'bout the ELisp API side? That's well pointed out. Why can't we just put the gate in the default expansion of the C DEFUN macro? There are only so many DEFUN's. Then the whitelisting could proceed from there. DEFUN's are rarely added, and they would be forbidden in sandbox mode by default. Jo=C3=A3o
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 18:52:39 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 13 13:52:39 2020 Received: from localhost ([127.0.0.1]:50240 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koWU2-0004zd-Qp for submit <at> debbugs.gnu.org; Sun, 13 Dec 2020 13:52:39 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:60785) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1koWU1-0004z7-IF for 45198 <at> debbugs.gnu.org; Sun, 13 Dec 2020 13:52:37 -0500 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 31BB71002B8; Sun, 13 Dec 2020 13:52:32 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id C915210022E; Sun, 13 Dec 2020 13:52:30 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607885550; bh=PkQpsSNyVdM8Q1VaNpSJCtrQuRhx0REwuCPfsAm56yE=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=AjxEDBqBSiSU90839OYhS4fIuuTOm2Spn2SjsxoXeyM5PLebZPlWvQZvfJoFEGATn NP+uEMB6dtc2KLzv6p3rH81fKM/FNiBjOFgquZ6aQCY0eJbgwZ+HJ3WO+1+ACngXre SZJsiXGRsvckbnXfKVFXPoQ5QkAbtUfWcCj/eAt6URReaPP4ulg5nELjppy0fed4Lp WOETizfbNc8Q4SJspggtIWuRDxXHnGhBDfwqyqz7JpfOlPCbnmuu9MNJwOhZQbxAew LFrXtJh3LOkYbTDSI4fw77KzKK+RZgCMR0QyAWB2SFJgZ7fxWmLh3gwIL9Sp/LKNxK rk4uwxSeOxCMg== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 853F11204C5; Sun, 13 Dec 2020 13:52:30 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwv7dplletm.fsf-monnier+emacs@HIDDEN> References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> Date: Sun, 13 Dec 2020 13:52:29 -0500 In-Reply-To: <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> (Philipp Stephani's message of "Sun, 13 Dec 2020 19:13:35 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.079 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?windows-1252?B?Sm/j?= =?windows-1252?B?byBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > (eql 0 (call-process "bwrap" ... "emacs" "--quick" "--batch" (format > "--eval=%S" form)))) BTW, thanks for this reference to bwrap. It looks like I should be able to use it for my immediate needs in (Non)GNU ELPA scripting. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 18:43:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 13 13:43:34 2020 Received: from localhost ([127.0.0.1]:50224 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koWLF-0004Ix-Tc for submit <at> debbugs.gnu.org; Sun, 13 Dec 2020 13:43:34 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:63231) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1koWLE-0004IP-8H for 45198 <at> debbugs.gnu.org; Sun, 13 Dec 2020 13:43:32 -0500 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id D6D641002B8; Sun, 13 Dec 2020 13:43:26 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 6947C10022E; Sun, 13 Dec 2020 13:43:25 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607885005; bh=xma7jsPMN6c+gzRTJjPnZi/Z+lobwPlxFNDfwpnAYIE=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=AoHI0YtnbrZE+Y8lAPturHtvCCKTwq4w2e/wQyxpDSliGKUPyIQ/boigPNs7B+ZY6 02XEuID8/7PT3n+kqOHVh8WvYYxbqdQiKiRUgNsAmtmhbhIrUPyTi3tWeMtlQTngAl C4ztmqX4hVnvo5iDWLJIYxQp7NxA9Z4h1t2joFbYCat8n2UDPPvODY1qjrhWXDRYru AKUU/S58N8MTk+LeUaF17pGuiRW0llAaTx9Ouu9/EMfI2nXMjmY7rPmfLo/9P6NHOe zdsGzJs/d6Is/JMyGKZtIoNY/1sMdY1YGK7RG2nnNl2W54czUXH68eAbmnkoGdT6fi F8Ass7hTXyuCA== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 261321201B2; Sun, 13 Dec 2020 13:43:25 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwvczzdlfws.fsf-monnier+emacs@HIDDEN> References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> Date: Sun, 13 Dec 2020 13:43:23 -0500 In-Reply-To: <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> (Philipp Stephani's message of "Sun, 13 Dec 2020 19:13:35 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.079 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?windows-1252?B?Sm/j?= =?windows-1252?B?byBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > The sandboxing technologies I'm aware of are process-based (because > Linux namespaces and kernel syscall filters are per-process), so a > "start sandbox from here" function likely can't be implemented. The > interface should rather be something like > > (defun run-in-sandbox (form) > (eql 0 (call-process "bwrap" ... "emacs" "--quick" "--batch" (format > "--eval=%S" form)))) > > (Maybe with some async variant and the opportunity to return some > result, like emacs-async.) Thanks. We definitely want some output, otherwise there's no point in running `form`, right? Also, I think the async option is the most important one. How 'bout: (sandbox-start FUNCTION) Lunch a sandboxed Emacs subprocess running FUNCTION. Returns a process object. FUNCTION is called with no arguments and it can use `sandbox-read` to read the data sent to the process object via `process-send-string`, and `sandbox-reply` to send back a reply to the parent process (which will receive it via its `process-filter`). The sandboxed process has read access to all the local files but no write access to them, nor any access to the network or the display. WDYT? >> - I suspect we'll still want to use the extra "manual" checks I put in >> my code (so as to get clean ELisp errors when bumping against the >> walls of the sandbox, and because of the added in-depth security). > That's reasonable, though I'm worried that it will give users a false > sense of security. That would only be the case if we don't additionally use process-level isolation, right? >> - This will need someone else doing the implementation. > Looks like we already have a volunteer for macOS. > For Linux, this shouldn't be that difficult either. The sandbox needs > to install a mount namespace that only allows read access to Emacs's > installation directory plus any input file and write access to known > output files, and enable syscall filters that forbid everything except > a list of known-safe syscalls (especially exec). I can take a stab at > that, but I can't promise anything ;-) Looking forward to it. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 18:13:55 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 13 13:13:55 2020 Received: from localhost ([127.0.0.1]:50089 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koVsY-0002qF-Pq for submit <at> debbugs.gnu.org; Sun, 13 Dec 2020 13:13:55 -0500 Received: from mail-oi1-f169.google.com ([209.85.167.169]:36982) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1koVsW-0002py-Oe for 45198 <at> debbugs.gnu.org; Sun, 13 Dec 2020 13:13:53 -0500 Received: by mail-oi1-f169.google.com with SMTP id l207so16639372oib.4 for <45198 <at> debbugs.gnu.org>; Sun, 13 Dec 2020 10:13:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=3Cg8XRaYwrmO/GiGsv6IskmDMoQI/lXKAvuiN1wSDmY=; b=P8X4NW5GW9x0CQKsfjDy6upTde9B4yIgaZj8PuDsgQhF2jM/HwGy/ymqjWBLRpy9lK tNMhLv9RyCi/7nOVmlyGAn2lZGeBBeiQ8Q5QvHokp/8YfrcLARN0Wser1dyyHepgqO8h L7s2byBmAc3sbi16XICTogP9452/dDfmdXO0fxz/z/JzUpxUmsrLN9D+t3irPXndMs02 VkJI24I9EnBWxaZK/B7smGNXfsZy9WVh9Ui5iPTcMcdAo73hJfbhCQqbnsoVDEwbJ9/l bOFaRq3rcD9L7TOKSCOozSQ+jarTFjETP+4qIQgf7dYaYw5Ikgcv+ErAr2ghRGR6zOAG T6wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3Cg8XRaYwrmO/GiGsv6IskmDMoQI/lXKAvuiN1wSDmY=; b=RdE4MEjDg2gTjx7mdwjv4eKFYRfFq4GQCJtXcjLsFTo9pufQhlVPICfxL7sO4Fd4CC 9ZD6dSSX6B0yBe4Mmpy3yQzNsHS/r2dd38/ucZ8HyGolmZ9xM7RPYAFQod/PgtHZkbqc GzSZlhIMQJ1swW+nZc2v/csw4wS45eN9f97UtFCI3qIsJVg5MzyVNdVSIWGaMyY26qBt c5rSBgH1waStghmKFuCMlYetUcO3aZj+3tgoDwt0YkCcsLM1e59qngbtJoiEj9c5IelI 4KDGpRtDWlZUGX4zfkhvktTu53XqYWJJ4g8vOkQ01+l3fSCfIxC3gUPxQefSFbaEur8K scYw== X-Gm-Message-State: AOAM5337ZCVwOIax9pVyO75fhK4o6xTMyWYUx7FjCT1pkar2KtSQXJyI 11cXHr8rmnmBqiT/DlTAMrkCasHk6ORoRY6jp3Q= X-Google-Smtp-Source: ABdhPJy0g4gyq9R9Sc9NCObwJEbqU2dd/xeHPuu1dV4eqM5aMEZYgTCzjfrUTMUwyDOgRmmVMJOATLnzRpnEFU6DwrA= X-Received: by 2002:a54:4881:: with SMTP id r1mr15576450oic.9.1607883227036; Sun, 13 Dec 2020 10:13:47 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> In-Reply-To: <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sun, 13 Dec 2020 19:13:35 +0100 Message-ID: <CAArVCkSJmVAsrKwLMVtVhamW=Py5NhgSoc+1pZ+Cn=cq5PjLUg@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am So., 13. Dez. 2020 um 18:57 Uhr schrieb Stefan Monnier <monnier@HIDDEN>: > > > I don't think such an approach can work. It assumes perfect knowledge > > about anything that might be problematic, and also assumes that all > > future changes to Emacs take the sandbox question into account. > > Especially the latter point seems unrealistic, and this looks like a > > security incident waiting to happen. > > That's true for the implementation side. > How 'bout the ELisp API side? > > > Sandboxing is good, but it should happen using an allowlist and > > established technology, such as firejail/bubblewrap/Google sandboxed > > API/... The sandboxing technologies I'm aware of are process-based (because Linux namespaces and kernel syscall filters are per-process), so a "start sandbox from here" function likely can't be implemented. The interface should rather be something like (defun run-in-sandbox (form) (eql 0 (call-process "bwrap" ... "emacs" "--quick" "--batch" (format "--eval=%S" form)))) (Maybe with some async variant and the opportunity to return some result, like emacs-async.) > > I'm all for it, *but*: > - I suspect we'll still want to use the extra "manual" checks I put in > my code (so as to get clean ELisp errors when bumping against the > walls of the sandbox, and because of the added in-depth security). That's reasonable, though I'm worried that it will give users a false sense of security. > - This will need someone else doing the implementation. Looks like we already have a volunteer for macOS. For Linux, this shouldn't be that difficult either. The sandbox needs to install a mount namespace that only allows read access to Emacs's installation directory plus any input file and write access to known output files, and enable syscall filters that forbid everything except a list of known-safe syscalls (especially exec). I can take a stab at that, but I can't promise anything ;-) > - The ELisp-level API should not depend on the specific implementation > too much, since none of those established technologies sound like > things that'll still be maintained 10 years from now. Yes, I'd imagine the API to be something like ;; Returns an opaque "sandbox" object. (cl-defun start-sandbox (form &key input-files output-files) ...) (defun wait-for-sandbox (sandbox) ...) That would allow for some extensibility and also asynchronicity. The API should fail if it can't establish a sandbox (e.g. if none of the sandbox technologies are installed). > - We need to have this in Emacs-28 if we want to enable flymake-mode in > ELisp by default in Emacs-28 (which I sure would like to do). I guess having it in Emacs 28 is realistic, unless that is going to be feature-frozen soon.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 17:57:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 13 12:57:34 2020 Received: from localhost ([127.0.0.1]:50056 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koVck-0002Q8-KX for submit <at> debbugs.gnu.org; Sun, 13 Dec 2020 12:57:34 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:39346) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1koVcj-0002Px-Ia for 45198 <at> debbugs.gnu.org; Sun, 13 Dec 2020 12:57:33 -0500 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 3AE8480625; Sun, 13 Dec 2020 12:57:28 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id DF7808033C; Sun, 13 Dec 2020 12:57:26 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607882246; bh=dCv+MUQWh7xnVsUU0jVfIP+QBCBZW/40jZ8hVV+4NE0=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=Fzo8n9064wliUTVh43OVxo1AZe4OXzkjEc4Vik9PinY7LwUe9K189jXFxNIU4/gYX AJvJq4CD0JqhhcbvTDTUJPHYCoIU5WWcX3XKtqdI68A+XWVtDjt0iBl3XVVNVPUl9H 1Hj03MUQuec3mWrCzBqzOMvHVAKLc0HE/t8fju6h9symzbjiEbXNi70AdjyaQgMxZC mj7VV/hj7V+ciesnrzEGA2y5riZlhEhW79QB82X+efXLGMHLmOB1ltStK5LsT0khbG NTA1QLKjJv5N4PFQhARS1ia+NCRZyyB8247I0W73lcs1wHmdYWclpctVhKLEItM3ut zpZASFM42CybA== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 9DB53120392; Sun, 13 Dec 2020 12:57:26 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Philipp Stephani <p.stephani2@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwvo8ixlhv9.fsf-monnier+emacs@HIDDEN> References: <jwvpn3ehpjz.fsf@HIDDEN> <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> Date: Sun, 13 Dec 2020 12:57:25 -0500 In-Reply-To: <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> (Philipp Stephani's message of "Sun, 13 Dec 2020 18:04:52 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.060 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?windows-1252?B?Sm/j?= =?windows-1252?B?byBU4XZvcmE=?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > I don't think such an approach can work. It assumes perfect knowledge > about anything that might be problematic, and also assumes that all > future changes to Emacs take the sandbox question into account. > Especially the latter point seems unrealistic, and this looks like a > security incident waiting to happen. That's true for the implementation side. How 'bout the ELisp API side? > Sandboxing is good, but it should happen using an allowlist and > established technology, such as firejail/bubblewrap/Google sandboxed > API/... I'm all for it, *but*: - I suspect we'll still want to use the extra "manual" checks I put in my code (so as to get clean ELisp errors when bumping against the walls of the sandbox, and because of the added in-depth security). - This will need someone else doing the implementation. - The ELisp-level API should not depend on the specific implementation too much, since none of those established technologies sound like things that'll still be maintained 10 years from now. - We need to have this in Emacs-28 if we want to enable flymake-mode in ELisp by default in Emacs-28 (which I sure would like to do). - I'd like to have this yesterday in order to build the Info files of GNU&NonGNU ELPA packages from their .org documentation without having to store the Info in the Git branch nor having to maintain some LXC container just for that. Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 17:09:55 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 13 12:09:55 2020 Received: from localhost ([127.0.0.1]:49992 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koUsW-000183-0K for submit <at> debbugs.gnu.org; Sun, 13 Dec 2020 12:09:55 -0500 Received: from mail-oi1-f182.google.com ([209.85.167.182]:46843) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1koUsU-00017r-9D for 45198 <at> debbugs.gnu.org; Sun, 13 Dec 2020 12:09:46 -0500 Received: by mail-oi1-f182.google.com with SMTP id q205so3751053oig.13 for <45198 <at> debbugs.gnu.org>; Sun, 13 Dec 2020 09:09:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Mn8E/T+QIfpNdyfF/XgD03yfFvBOkwcEFmSl8V3Ztvk=; b=ObrS7i/Ka4b9AkmZcKdEIw6auWTjZ/Q/Bn80iTVWPtJ6dB1B+GLAATaOLBRazjQO8+ WQNZNMxtkyNuq8N+Ak0PmBatVvZllHRbbtZFdsJjVq9q1gR8u+/WlRfoGv1JBHxQcqEq uX6i7UAzyZMlYeR0NRytyhSi9zAU8JQ4gUtmMg10mzlyINDChqWomK1v4W6YzZtkBUvE Eld8rmIZyBq+FGHPGecuH+77tM4TFp5YXzeyts/ho94pV7/qL+Mvmx9IfDUIsAhuoeTe ZY6APbS8Qbl13y3fUV5/Sof2ftE+XBeIsSO1r52sYO6hUHOBpwQKXazVaauhv3QyqWMh DZDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Mn8E/T+QIfpNdyfF/XgD03yfFvBOkwcEFmSl8V3Ztvk=; b=tlccKhwmHzMx4Bd2NnQMy4BBq+Wq92iJDXgUPBAW7dZg3Ok5zBwzsxIkU+AeCHHl70 5NvKW3E38r5txQr3T7msNRNUVmq8pfbJx0pzzq4cshn8ydDyq2csv8ePh1+KntSnFW0l hjhXmb2gvyadPs+K/kDyYPNvoyg/0Hfdl4gWuasXTZCnLzZEmBAwImIN4wjqW7gd+pSS SeAfCsFaPC/vUlAbOTHdrD0ttErNtrDMS5YFFAcdJyRDy1h56vWLFqrrg8zeT0MB7sMN PlC5l0rLbAvnkOW/4v+hEvik7wTpbYWA5GffOWeB2bxxO6/NOuot2S2bm+nuTxDwGPVM 5O9w== X-Gm-Message-State: AOAM532bh6YOVHYkGycXg9+OrISX4syKnAf9o7CVnRAnt9BGM68XphYw dGLOpAFb0An6FoYNQxx5b5aL3pT/XTdfskScTkU= X-Google-Smtp-Source: ABdhPJxAfM06tBzrzApYFLa4DQNJ3WHeMa8zdduitrEDueX0ZCl4ABs5XEGmAzCknBvWQhR7L627uxI1+feNmugMZdo= X-Received: by 2002:aca:d4cf:: with SMTP id l198mr15702352oig.170.1607879380832; Sun, 13 Dec 2020 09:09:40 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <B6C702AA-0850-48EF-87C7-C48D05270454@HIDDEN> In-Reply-To: <B6C702AA-0850-48EF-87C7-C48D05270454@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sun, 13 Dec 2020 18:09:29 +0100 Message-ID: <CAArVCkSZXgLmeGKYxu3OkhDT_ksoQhcMzTbJLiCeSbdvznFKcg@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Am So., 13. Dez. 2020 um 16:32 Uhr schrieb Mattias Engdeg=C3=A5rd <mattiase= @acm.org>: > For Linux there are several options, most a bit messy but possible to us= e: seccomp (with or without BFP), name spaces, ptrace, etc. Fortunately there are quite a few good wrappers for these: firejail, bubblewrap, nsjail, minijail, Google Sandbox2. https://developers.google.com/sandboxed-api/docs/sandbox-overview has a good overview.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 17:07:51 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 13 12:07:51 2020 Received: from localhost ([127.0.0.1]:49988 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koUqd-000158-MH for submit <at> debbugs.gnu.org; Sun, 13 Dec 2020 12:07:51 -0500 Received: from mail-oi1-f177.google.com ([209.85.167.177]:44323) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1koUqc-00014v-2G for 45198 <at> debbugs.gnu.org; Sun, 13 Dec 2020 12:07:50 -0500 Received: by mail-oi1-f177.google.com with SMTP id d189so16462206oig.11 for <45198 <at> debbugs.gnu.org>; Sun, 13 Dec 2020 09:07:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Zhz4+259vRsoBnwqiE+S1oDW+R153YFP6gG04Nzd2k4=; b=uEM5X3TJjoGDmMN8gKPqhEXFm03P2AMoFGNjAOftNhXTBxqeuC+9cqqdVgOhbbQhP1 PRnec79OeR94KNn1kibPfwueDIy9/rWR/4GE77cWzDP4ZV9x711DlQsYn5H0CwbuSBnI hnGTbx/ij7AQAbc26qXc3OYirAas0+BUD6PuWB9f0y6bD38Ca34GbfcDeBeTqxzDD/oo BWKeVC1q/0m5fvj2RUXPkJUsBjvB8WKTKm/xl+OnOAvq0M/nAO/opK/0zk2G3nSpn/PU 4eTpCuj0/Fgz1km2jsd0C3nGga8q5/2zKNEMBJSijh62uhqGzKSDX2plHxJKChoSclSH CXLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Zhz4+259vRsoBnwqiE+S1oDW+R153YFP6gG04Nzd2k4=; b=I1C2bHfqGbo8xxnYYSVUsorI6/iodTXd7twR+/WBDJwClElA6RJ9XreHIJfOJPTskj LyHf2U2ONz/rUqrfHJtM2/e/ArIlt0Y09G8BgyW4BL9bu2orr86Kguf+uEv2vOuptFbk 3X7DVfisCpECVI+19nj2hy6GkHeWCLBa7ci3GI22jgWzxGwtdwkyG6JZD/N8cROzBVQc cSOP0KiAgitX3dAeNT0qXlyPRhQbT5VMd2+SCKRNU49SM3WomEQD0PoWbj8LMuGzpI6n hDwcTsgoh76gmdzSwhczdO53ZnRUeo/GOOK3cZ1463V9ElQiToeU04GY6r+jwjRYhbkR 6DUA== X-Gm-Message-State: AOAM532iDIoDJ/u5SkV46S6N9rU2IeAd4HYsoVsQvFwLzJOpHBaNozNJ eL3RbU6P8cq09RRrEZ5UyuD4iJiK7rZDt5LAyplYvSnw X-Google-Smtp-Source: ABdhPJx7XkJguBDEVTh45+dcwxyUKerDpOTRwLMxiFXHl1WP44QGVhx2TVjMUTa55BHucOTOD76LgLIFu9P6PHN7pQ4= X-Received: by 2002:a54:4881:: with SMTP id r1mr15462645oic.9.1607879264651; Sun, 13 Dec 2020 09:07:44 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> <83mtyierfs.fsf@HIDDEN> <jwv360aohw6.fsf-monnier+emacs@HIDDEN> <83ft4ae63m.fsf@HIDDEN> <jwvlfe2mj6c.fsf-monnier+emacs@HIDDEN> In-Reply-To: <jwvlfe2mj6c.fsf-monnier+emacs@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sun, 13 Dec 2020 18:07:33 +0100 Message-ID: <CAArVCkTi1yTH5=u58y_NZejTZwKegnCXOSX-ey6F7_jqgC1tgQ@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: bzg@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am So., 13. Dez. 2020 um 05:26 Uhr schrieb Stefan Monnier <monnier@HIDDEN>: > I'm still worried that there remain wide open security holes, tho. Yes, this is still essentially arbitrary RCE. Running untrusted code needs defence in depth.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 17:05:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 13 12:05:11 2020 Received: from localhost ([127.0.0.1]:49984 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koUo3-00011T-9P for submit <at> debbugs.gnu.org; Sun, 13 Dec 2020 12:05:11 -0500 Received: from mail-oi1-f177.google.com ([209.85.167.177]:43159) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <p.stephani2@HIDDEN>) id 1koUo1-00011D-Bx for 45198 <at> debbugs.gnu.org; Sun, 13 Dec 2020 12:05:09 -0500 Received: by mail-oi1-f177.google.com with SMTP id q25so16463694oij.10 for <45198 <at> debbugs.gnu.org>; Sun, 13 Dec 2020 09:05:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=yv8HURJP5ofanAtWAiTOAUvBAj8/6A3diiH33PL7QhM=; b=YiboP73DxtmsL50pDObS5FJvfEujCDnPSGybJd9TnfPfY08EnBw2kPH4HXLNlOjsir nKgCnYpuoMiUlWYiyIy4W4bX47N/B78n9S+zwsnEsX0p8Npb36eXaqadwHx+/LWfpzvD vqQGOsEQX2/i04K9MQ+wIMB2t8r6aESmQ5NV4FXwgrTXprEeuugp7VLna7n/Nq2jFeTi HNR9qv3dL0PbR4WTUSp1FbQ2Txy89EAaPdL5s9jciei4BNggEqlWe7GUv/Gy1jy2v35D 4DUyvIzpEtkkfSN/OeugSbX+Cmvez3/zYpKdzObGNCOCo5GDJ8K9mA7KQ80QvTGAV+ez dl5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=yv8HURJP5ofanAtWAiTOAUvBAj8/6A3diiH33PL7QhM=; b=GICHeArc8Glky5B4sZ9dVH4v50+cGUZsPJ4bAArCoPc1loUPoOHTyoZgwHrsuHEcyH TrP0zeIcOvWkCZibHpdR2asmNEuZvv8ENArHmS4NiXtYGbhYb9J7S7ZQgQGPWTVnnSrS tI0jOv//sIM916A4ADGyuF0OU84V4+kfMpPgVpxtz1ydgkvbxYGWfw1Rdnbiw3CCT2Ty LdOt/IZgOc5u4DRZRp6CQiwK5ZBgOzSno+dN+5YZU5OWlJFm1STdAmmDIPSJe/ACnP04 ywt6kpooscVivcwOl2QRLzgmzw0x4t6bnIMNIX3RaEUDb9O9sQtheluTu3/88XAlfmyw p32A== X-Gm-Message-State: AOAM531CusgKzIeVDdpy5WvwvFup8uKSABh8n2fXAkOzdE2jLMs0GAbY /82iM5nEV8UkYN4Jm7YKsMACT2F57PlUZVtcFAI= X-Google-Smtp-Source: ABdhPJxu/DsZnZfVw1h7tXm1lqAwbr2DR07o/YfzeAjOrtCcOOijmNRkv1zf4ZCJiPXyIcnHjScuUDZGvwS4JzFW9+o= X-Received: by 2002:a54:4881:: with SMTP id r1mr15455959oic.9.1607879103627; Sun, 13 Dec 2020 09:05:03 -0800 (PST) MIME-Version: 1.0 References: <jwvpn3ehpjz.fsf@HIDDEN> In-Reply-To: <jwvpn3ehpjz.fsf@HIDDEN> From: Philipp Stephani <p.stephani2@HIDDEN> Date: Sun, 13 Dec 2020 18:04:52 +0100 Message-ID: <CAArVCkSd9XjF1_18ovR3tBLyJejNsyhc4dSMx0XEWJwPMy85MA@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 45198 Cc: Bastien <bzg@HIDDEN>, 45198 <at> debbugs.gnu.org, =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.8 (/) Am Sa., 12. Dez. 2020 um 20:40 Uhr schrieb Stefan Monnier <monnier@HIDDEN>: > > One thing I'm particularly eager to hear your opinion about is whether > there might be more holes to plug (i.e. more places where we need to > call `ensure_no_sandbox`). Clearly, from a security perspective, this is > the main drawback of this approach: it's based on a black list rather > than on a whitelist. Still, I have the impression that it should > be manageable. I don't think such an approach can work. It assumes perfect knowledge about anything that might be problematic, and also assumes that all future changes to Emacs take the sandbox question into account. Especially the latter point seems unrealistic, and this looks like a security incident waiting to happen. Sandboxing is good, but it should happen using an allowlist and established technology, such as firejail/bubblewrap/Google sandboxed API/...
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 15:31:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 13 10:31:11 2020 Received: from localhost ([127.0.0.1]:49936 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koTL5-0006i3-4P for submit <at> debbugs.gnu.org; Sun, 13 Dec 2020 10:31:11 -0500 Received: from mail18c50.megamailservers.eu ([91.136.10.28]:34764) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mattiase@HIDDEN>) id 1koTKz-0006hb-V8 for 45198 <at> debbugs.gnu.org; Sun, 13 Dec 2020 10:31:09 -0500 X-Authenticated-User: mattiase@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1607873464; bh=oZeGC9xoLyjD8QpyxpakN05RkeMQKBSs4SQ1PaM44OY=; h=From:Subject:Date:Cc:To:From; b=sLvPUKXGZak308rvgEuR4VeFf2/JivM/XacxOPG7lyt0CLf/owWWSHlH3p73d77vF oYmtOx/qfGok2VMC/mWp42SvyvivCckY1kBFzukhguZe1DQrzzObRFW0cJaeRKlltm 6zkq2r+usoeXq2+OIQ04YDpegXeAHl/KoHF5WctY= Feedback-ID: mattiase@HIDDEN Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se [188.150.171.71]) (authenticated bits=0) by mail18c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0BDFV10c010992; Sun, 13 Dec 2020 15:31:03 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-Id: <B6C702AA-0850-48EF-87C7-C48D05270454@HIDDEN> Date: Sun, 13 Dec 2020 16:31:00 +0100 To: Stefan Monnier <monnier@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, Bastien <bzg@HIDDEN> X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A782F19.5FD633B8.0020, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=e5N4tph/ c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=945-CkrjixCtq6tHtyUA:9 a=CjuIK1q_8ugA:10 X-Origin-Country: SE X-Spam-Score: 4.1 (++++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > I'm still worried that there remain wide open security holes, tho. Yes, and we need defence in depth. In addition to the measures already taken in the patch: 1. Add crash_if_sandboxed() calls in low-level routines that do objectionable things such as opening files for writing, create network connections, spawn processes, do DNS lookups, etc. Content analysis details: (4.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 3.1 FAKE_REPLY_B No description available. X-Debbugs-Envelope-To: 45198 Cc: 45198 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 3.1 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > I'm still worried that there remain wide open security holes, tho. Yes, and we need defence in depth. In addition to the measures already taken in the patch: 1. Add crash_if_sandboxed() calls in low-level routines that do objectionable things such as opening files for writing, create network connections, spawn processes, do DNS lookups, etc. Content analysis details: (3.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 3.1 FAKE_REPLY_B No description available. > I'm still worried that there remain wide open security holes, tho. Yes, and we need defence in depth. In addition to the measures already = taken in the patch: 1. Add crash_if_sandboxed() calls in low-level routines that do = objectionable things such as opening files for writing, create network = connections, spawn processes, do DNS lookups, etc. 2. Platform-specific restrictions. I'll add macOS sandboxing if nobody = else does. For Linux there are several options, most a bit messy but = possible to use: seccomp (with or without BFP), name spaces, ptrace, = etc.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 11:15:04 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 13 06:15:04 2020 Received: from localhost ([127.0.0.1]:47508 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koPLD-0002W0-To for submit <at> debbugs.gnu.org; Sun, 13 Dec 2020 06:15:04 -0500 Received: from mail-wm1-f47.google.com ([209.85.128.47]:34981) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <joaotavora@HIDDEN>) id 1koPLC-0002Ul-Bd for 45198 <at> debbugs.gnu.org; Sun, 13 Dec 2020 06:15:02 -0500 Received: by mail-wm1-f47.google.com with SMTP id e25so12636863wme.0 for <45198 <at> debbugs.gnu.org>; Sun, 13 Dec 2020 03:15:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=0dFJ7REgDbDr/rzkxNYFIArDFiDosKqonAV8Sm2wWcE=; b=Gxm1CSkGayAmr6FPduOVE87OrVap+e7lIhjeNUeNxVI0Zm5NCMVPWTwZG+2f9PgJ1t opaU3850kaCdVjnI2ezrahAoO+wWmx3W4NIaneQ0lGEeiIihvU+6BKXLLyXzrwTxOFmO 0FplnYCJiYe7XYCdmUGKL2fGPD6Mj3t2FOKj6w8xB1viE0oaThOEREv+CLzuw3zG0uOW 26KPuEbpdep93Grjwt+0n3l3mrSxDMKJvToCi3vouKveJvVvANbOG+7eV818a0128OAl xTKNf7CeS/STX7hNCZ8MJqebOG+KGKFruY5PDbza4SCQwc5muU/mzlvuX1jZj1ft2hY5 GjFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=0dFJ7REgDbDr/rzkxNYFIArDFiDosKqonAV8Sm2wWcE=; b=ARvSTyB0fwGx469lcEwrcWGA75qmBEZEjwJ3yaNAyw051Qvr9csnT4s1fmo9bVW9aK LmBOTwr66enX4eU6/7XJb8bZo6k5jY+A+0yeab+RdDIbGyjvhl+SD3UvVg/YlrKTIKg2 ZLvbMPE7UoLQkkcy7BJ1mZStiSa+JhvbUm782gbyVy/uPC/QXG+LsXPEtbFammx6Xwmp Bp7DEoYMx+m3XCd7f9Tkc5Ahuk2XSYkagXS6AkUf22wBFI9g9+ZTsF4aWEZAmKvXe4ys LuzmQa4F7UFBlkznKfzAiuHdgMM3L/ZrPBKyMqkQN07INjS55UmgnvctHfF/PMgAsUWj UD/g== X-Gm-Message-State: AOAM533HMZgzfBzQXKuIMYNIW3gRuJegOgovhqCFKmTUwZT6s3t5qaXF 0I7RR8Ihga3knD4c0qy/4sTSVl5+H0s= X-Google-Smtp-Source: ABdhPJyhUC7J9Fp0YYQc+dDzSJ4b3PLmfbnFTSdI+hNLdtMBvbSBactvqydlmpIm8UbH/PDyAG+dOA== X-Received: by 2002:a1c:c287:: with SMTP id s129mr1598307wmf.79.1607858096559; Sun, 13 Dec 2020 03:14:56 -0800 (PST) Received: from krug ([89.180.146.231]) by smtp.gmail.com with ESMTPSA id h15sm24521929wru.4.2020.12.13.03.14.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Dec 2020 03:14:55 -0800 (PST) From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <jwvpn3ehpjz.fsf@HIDDEN> <83mtyierfs.fsf@HIDDEN> <jwv360aohw6.fsf-monnier+emacs@HIDDEN> <83ft4ae63m.fsf@HIDDEN> <jwvlfe2mj6c.fsf-monnier+emacs@HIDDEN> Date: Sun, 13 Dec 2020 11:14:53 +0000 In-Reply-To: <jwvlfe2mj6c.fsf-monnier+emacs@HIDDEN> (Stefan Monnier's message of "Sat, 12 Dec 2020 23:25:27 -0500") Message-ID: <87zh2iyn2q.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45198 Cc: bzg@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, 45198 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Monnier <monnier@HIDDEN> writes: >>> > You cannot usefully call error from redisplay. >>> Hmm... but this is at the entrance to redisplay, so I though it should >>> still be safe at that point. If it's a problem we can replace the above >>> with >>> if (emacs_is_sandboxed) >>> return; >> Yes, I think this is what we should do in this case. > > With the change I just installed into `master`, I can now get > `elisp-flymake-byte-compile` to use sandboxing successfully with the > revised patch below. Fantastic! > Besides the above change, I made the same change in `Fdo_auto_save` > (i.e. `do-auto-save` was made to just silently do nothing instead of > signaling an error since it seemed to be too much trouble to change its > callers to avoid calling it when sandboxed). > > I'm still worried that there remain wide open security holes, tho. First, I wouldn't worry that terribly. This is certainly and improvement. I won't be bitten again like that time I accidentally typed (delete-directory ".") at macroexpand time. That said, as you said the whitelisting approach is the safest one. It'd be nice if you we a way to identify system calls and block all by default. Then whitelist a bunch of calls (checking arguments). Not sure if this can be done portably/systematically, though. Chroot also comes to mind, but it's only for linux, right? Jo=C3=A3o
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 04:25:39 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 12 23:25:39 2020 Received: from localhost ([127.0.0.1]:47255 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koIx1-0001ld-1w for submit <at> debbugs.gnu.org; Sat, 12 Dec 2020 23:25:39 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:21198) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1koIwz-0001lQ-GP for 45198 <at> debbugs.gnu.org; Sat, 12 Dec 2020 23:25:38 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id E7846440F88; Sat, 12 Dec 2020 23:25:31 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 68889440F93; Sat, 12 Dec 2020 23:25:29 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607833529; bh=TmfW7nqEXzYwEhYLpo0mvNCF/UldCIaea6/c+w0ADAc=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=IZpFeYPCG8z9fvdGpziXv+hsGqHeCFUKSifFz1EQg0MaJ3gGymW5mgYCAk+gEKT0l 2aGrdD/JkQbJcuXj/+G2aGf6HkRV/u1/zTNISZZYUOmugif/WmKRu8hqimTxlqapR/ xM1XR74Hc00mHBNuBB8U4tTNZR7pE0YTKJ/MZctO0X7NkV3znNr6rIyxKGMizkIELf AjV3rk2aDQq4qPn49xJ4Z0B5VrPLLTNrKqfXgaCKiJz1Y+2Tr5EF/cfnuV4tDXuM1I loCGsttFHD7xQKdnxtcNoCDeugGUoeQBKiGNF06f5FB+S7ADAl3WOmrjf258enss11 U3XHKnuqbq7iw== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 28618120201; Sat, 12 Dec 2020 23:25:29 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwvlfe2mj6c.fsf-monnier+emacs@HIDDEN> References: <jwvpn3ehpjz.fsf@HIDDEN> <83mtyierfs.fsf@HIDDEN> <jwv360aohw6.fsf-monnier+emacs@HIDDEN> <83ft4ae63m.fsf@HIDDEN> Date: Sat, 12 Dec 2020 23:25:27 -0500 In-Reply-To: <83ft4ae63m.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 13 Dec 2020 05:29:33 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.068 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: bzg@HIDDEN, 45198 <at> debbugs.gnu.org, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> > You cannot usefully call error from redisplay. >> Hmm... but this is at the entrance to redisplay, so I though it should >> still be safe at that point. If it's a problem we can replace the above >> with >> if (emacs_is_sandboxed) >> return; > Yes, I think this is what we should do in this case. With the change I just installed into `master`, I can now get `elisp-flymake-byte-compile` to use sandboxing successfully with the revised patch below. Besides the above change, I made the same change in `Fdo_auto_save` (i.e. `do-auto-save` was made to just silently do nothing instead of signaling an error since it seemed to be too much trouble to change its callers to avoid calling it when sandboxed). I'm still worried that there remain wide open security holes, tho. Stefan diff --git a/etc/NEWS b/etc/NEWS index 909473f4e7..ee51495ca0 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -85,6 +85,16 @@ useful on systems such as FreeBSD which ships only with "etc/termcap". * Changes in Emacs 28.1 +** Sandbox mode to run untrusted code. +The new function 'sandbox-enter' puts Emacs mode into a state in which +it can (hopefully) run untrusted code safely. This mode is restricted such +that Emacs cannot exit the mode, nor can it write to files or launch +new processes. It can still read arbitrary files and communicate over +pre-existing communication links. This can only be used in batch mode. +The expected use is to launch a new batch Emacs session, put it +into sandbox mode, then run the untrusted code, send back the +result via 'message', and then exit. + ** Minibuffer scrolling is now conservative by default. This is controlled by the new variable 'scroll-minibuffer-conservatively'. diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index b7e0c45228..df839d20b9 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -1836,6 +1836,7 @@ elisp-flymake--batch-compile-for-flymake (push (list string position fill level) collected) t))) + (sandbox-enter) (unwind-protect (byte-compile-file file) (ignore-errors diff --git a/src/emacs-module.c b/src/emacs-module.c index b7cd835c83..79ff2b6ce6 100644 --- a/src/emacs-module.c +++ b/src/emacs-module.c @@ -1091,6 +1091,7 @@ DEFUN ("module-load", Fmodule_load, Smodule_load, 1, 1, 0, doc: /* Load module FILE. */) (Lisp_Object file) { + ensure_no_sandbox (); dynlib_handle_ptr handle; emacs_init_function module_init; void *gpl_sym; @@ -1151,6 +1152,7 @@ DEFUN ("module-load", Fmodule_load, Smodule_load, 1, 1, 0, Lisp_Object funcall_module (Lisp_Object function, ptrdiff_t nargs, Lisp_Object *arglist) { + ensure_no_sandbox (); const struct Lisp_Module_Function *func = XMODULE_FUNCTION (function); eassume (0 <= func->min_arity); if (! (func->min_arity <= nargs diff --git a/src/emacs.c b/src/emacs.c index 2a32083ba1..0df70ae43e 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -139,6 +139,8 @@ #define MAIN_PROGRAM struct gflags gflags; bool initialized; +bool emacs_is_sandboxed; + /* If true, Emacs should not attempt to use a window-specific code, but instead should use the virtual terminal under which it was started. */ bool inhibit_window_system; @@ -2886,6 +2888,30 @@ DEFUN ("daemon-initialized", Fdaemon_initialized, Sdaemon_initialized, 0, 0, 0, return Qt; } +DEFUN ("sandbox-enter", Fsandbox_enter, Ssandbox_enter, 0, 0, 0, + doc: /* Put Emacs in sandboxed mode. +After calling this function, Emacs cannot have externally visible +side effects any more. For example, it will not be able to write to files, +create new processes, open new displays, or call functionality provided by +modules, ... +It can still send data to pre-existing processes, on the other hand. +There is no mechanism to exit sandboxed mode. */) + (void) +{ + if (!noninteractive) + /* We could allow a sandbox in interactive sessions, but it seems + useless, so we'll assume that it was a pilot-error. */ + error ("Can't enter sandbox in interactive session"); + emacs_is_sandboxed = true; + return Qnil; +} + +void ensure_no_sandbox (void) +{ + if (emacs_is_sandboxed) + error ("Sandboxed"); +} + void syms_of_emacs (void) { @@ -2906,6 +2932,7 @@ syms_of_emacs (void) defsubr (&Sinvocation_directory); defsubr (&Sdaemonp); defsubr (&Sdaemon_initialized); + defsubr (&Ssandbox_enter); DEFVAR_LISP ("command-line-args", Vcommand_line_args, doc: /* Args passed by shell to Emacs, as a list of strings. diff --git a/src/fileio.c b/src/fileio.c index 702c143828..509341351d 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -689,6 +689,7 @@ DEFUN ("make-temp-file-internal", Fmake_temp_file_internal, (Lisp_Object prefix, Lisp_Object dir_flag, Lisp_Object suffix, Lisp_Object text) { + ensure_no_sandbox (); CHECK_STRING (prefix); CHECK_STRING (suffix); Lisp_Object encoded_prefix = ENCODE_FILE (prefix); @@ -2043,6 +2044,7 @@ DEFUN ("copy-file", Fcopy_file, Scopy_file, 2, 6, Lisp_Object keep_time, Lisp_Object preserve_uid_gid, Lisp_Object preserve_permissions) { + ensure_no_sandbox (); Lisp_Object handler; ptrdiff_t count = SPECPDL_INDEX (); Lisp_Object encoded_file, encoded_newname; @@ -2301,6 +2303,7 @@ DEFUN ("make-directory-internal", Fmake_directory_internal, doc: /* Create a new directory named DIRECTORY. */) (Lisp_Object directory) { + ensure_no_sandbox (); const char *dir; Lisp_Object handler; Lisp_Object encoded_dir; @@ -2327,6 +2330,7 @@ DEFUN ("delete-directory-internal", Fdelete_directory_internal, doc: /* Delete the directory named DIRECTORY. Does not follow symlinks. */) (Lisp_Object directory) { + ensure_no_sandbox (); const char *dir; Lisp_Object encoded_dir; @@ -2356,6 +2360,7 @@ DEFUN ("delete-file", Fdelete_file, Sdelete_file, 1, 2, With a prefix argument, TRASH is nil. */) (Lisp_Object filename, Lisp_Object trash) { + ensure_no_sandbox (); Lisp_Object handler; Lisp_Object encoded_file; @@ -2494,6 +2499,7 @@ DEFUN ("rename-file", Frename_file, Srename_file, 2, 3, This is what happens in interactive use with M-x. */) (Lisp_Object file, Lisp_Object newname, Lisp_Object ok_if_already_exists) { + ensure_no_sandbox (); Lisp_Object handler; Lisp_Object encoded_file, encoded_newname; @@ -2614,6 +2620,7 @@ DEFUN ("add-name-to-file", Fadd_name_to_file, Sadd_name_to_file, 2, 3, This is what happens in interactive use with M-x. */) (Lisp_Object file, Lisp_Object newname, Lisp_Object ok_if_already_exists) { + ensure_no_sandbox (); Lisp_Object handler; Lisp_Object encoded_file, encoded_newname; @@ -2667,6 +2674,7 @@ DEFUN ("make-symbolic-link", Fmake_symbolic_link, Smake_symbolic_link, 2, 3, This happens for interactive use with M-x. */) (Lisp_Object target, Lisp_Object linkname, Lisp_Object ok_if_already_exists) { + ensure_no_sandbox (); Lisp_Object handler; Lisp_Object encoded_target, encoded_linkname; @@ -3176,6 +3184,7 @@ DEFUN ("set-file-selinux-context", Fset_file_selinux_context, or if Emacs was not compiled with SELinux support. */) (Lisp_Object filename, Lisp_Object context) { + ensure_no_sandbox (); Lisp_Object absname; Lisp_Object handler; #if HAVE_LIBSELINUX @@ -3307,6 +3316,7 @@ DEFUN ("set-file-acl", Fset_file_acl, Sset_file_acl, support. */) (Lisp_Object filename, Lisp_Object acl_string) { + ensure_no_sandbox (); #if USE_ACL Lisp_Object absname; Lisp_Object handler; @@ -3392,6 +3402,7 @@ DEFUN ("set-file-modes", Fset_file_modes, Sset_file_modes, 2, 3, symbolic notation, like the `chmod' command from GNU Coreutils. */) (Lisp_Object filename, Lisp_Object mode, Lisp_Object flag) { + ensure_no_sandbox (); CHECK_FIXNUM (mode); int nofollow = symlink_nofollow_flag (flag); Lisp_Object absname = Fexpand_file_name (filename, @@ -3458,6 +3469,7 @@ DEFUN ("set-file-times", Fset_file_times, Sset_file_times, 1, 3, 0, TIMESTAMP is in the format of `current-time'. */) (Lisp_Object filename, Lisp_Object timestamp, Lisp_Object flag) { + ensure_no_sandbox (); int nofollow = symlink_nofollow_flag (flag); struct timespec ts[2]; @@ -5039,6 +5051,7 @@ DEFUN ("write-region", Fwrite_region, Swrite_region, 3, 7, (Lisp_Object start, Lisp_Object end, Lisp_Object filename, Lisp_Object append, Lisp_Object visit, Lisp_Object lockname, Lisp_Object mustbenew) { + ensure_no_sandbox (); return write_region (start, end, filename, append, visit, lockname, mustbenew, -1); } @@ -5837,6 +5850,8 @@ DEFUN ("do-auto-save", Fdo_auto_save, Sdo_auto_save, 0, 2, "", A non-nil CURRENT-ONLY argument means save only current buffer. */) (Lisp_Object no_message, Lisp_Object current_only) { + if (emacs_is_sandboxed) + return Qnil; struct buffer *old = current_buffer, *b; Lisp_Object tail, buf, hook; bool auto_saved = 0; diff --git a/src/lisp.h b/src/lisp.h index e83304462f..107a2d9f03 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -603,6 +603,10 @@ #define ENUM_BF(TYPE) enum TYPE subsequent starts. */ extern bool initialized; +/* Whether we've been neutralized. */ +extern bool emacs_is_sandboxed; +extern void ensure_no_sandbox (void); + extern struct gflags { /* True means this Emacs instance was born to dump. */ diff --git a/src/process.c b/src/process.c index 4fe8ac7fc0..68460868c4 100644 --- a/src/process.c +++ b/src/process.c @@ -862,6 +862,8 @@ allocate_pty (char pty_name[PTY_NAME_SIZE]) static struct Lisp_Process * allocate_process (void) { + ensure_no_sandbox (); + return ALLOCATE_ZEROED_PSEUDOVECTOR (struct Lisp_Process, thread, PVEC_PROCESS); } diff --git a/src/xdisp.c b/src/xdisp.c index 96dd4fade2..04972c248e 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -15442,6 +15442,11 @@ #define RESUME_POLLING \ static void redisplay_internal (void) { + /* Not sure if it's important to avoid redisplay inside a sandbox, + but it seems safer to avoid risking introducing security holes via + image libraries and such. */ + if (emacs_is_sandboxed) + return; struct window *w = XWINDOW (selected_window); struct window *sw; struct frame *fr; diff --git a/src/xterm.c b/src/xterm.c index 3de0d2e73c..e8a4d2f29d 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -12698,6 +12698,7 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) xcb_connection_t *xcb_conn; #endif + ensure_no_sandbox (); block_input (); if (!x_initialized)
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 13 Dec 2020 03:29:55 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 12 22:29:55 2020 Received: from localhost ([127.0.0.1]:47229 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koI55-0000GL-5J for submit <at> debbugs.gnu.org; Sat, 12 Dec 2020 22:29:55 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40324) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1koI52-0000G8-LC for 45198 <at> debbugs.gnu.org; Sat, 12 Dec 2020 22:29:53 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57314) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1koI4w-00021j-TF; Sat, 12 Dec 2020 22:29:46 -0500 Received: from [176.228.60.248] (port=4104 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1koI4v-0004oZ-5Y; Sat, 12 Dec 2020 22:29:45 -0500 Date: Sun, 13 Dec 2020 05:29:33 +0200 Message-Id: <83ft4ae63m.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> In-Reply-To: <jwv360aohw6.fsf-monnier+emacs@HIDDEN> (message from Stefan Monnier on Sat, 12 Dec 2020 16:06:54 -0500) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <jwvpn3ehpjz.fsf@HIDDEN> <83mtyierfs.fsf@HIDDEN> <jwv360aohw6.fsf-monnier+emacs@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: bzg@HIDDEN, 45198 <at> debbugs.gnu.org, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Stefan Monnier <monnier@HIDDEN> > Cc: 45198 <at> debbugs.gnu.org, bzg@HIDDEN, joaotavora@HIDDEN > Date: Sat, 12 Dec 2020 16:06:54 -0500 > > > You cannot usefully call error from redisplay. > > Hmm... but this is at the entrance to redisplay, so I though it should > still be safe at that point. If it's a problem we can replace the above > with > > if (emacs_is_sandboxed) > return; Yes, I think this is what we should do in this case.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 12 Dec 2020 21:07:05 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 12 16:07:05 2020 Received: from localhost ([127.0.0.1]:46904 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koC6a-0004rD-NE for submit <at> debbugs.gnu.org; Sat, 12 Dec 2020 16:07:04 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:28953) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1koC6Y-0004qd-FJ for 45198 <at> debbugs.gnu.org; Sat, 12 Dec 2020 16:07:03 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id D542D440F7E; Sat, 12 Dec 2020 16:06:56 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id A9FE2440859; Sat, 12 Dec 2020 16:06:55 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607807215; bh=Twac/IHdDuKLecpgyh+5kVryS3lVw+lulK0AT9VCukw=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=ZVvpHT3qU906gSGAhekueYWWj+gjUZYop9eBnYOPU4YdByuoskKeK4/2Q6++2IpLW 811Q6Zaj8a0XAo78LGLptI84ACEKwko0W8G7tTZ8Agoj7c3kxkZq9aP1ohKa87Wiox ZueYwhWZU/WbqGEsMU7AwEQmUhmHN+V0sBN2KvHtH34Y5enfvNLx38tXQbTPZ7YUzk YzvzSu4FHWtVlGlKAOk4eavJoc+g+CJLzRIW+OvTSSlxPS8DS+rT5/bvMl8RuvPS00 +yoRkUa/BI8ARThfkIGMlauSwemjRlgSZVwn23Izx6OHbhXpQ3m9gDscvB1RiP0Ti4 QRrffduVOrA3w== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 3058612061D; Sat, 12 Dec 2020 16:06:55 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#45198: 28.0.50; Sandbox mode Message-ID: <jwv360aohw6.fsf-monnier+emacs@HIDDEN> References: <jwvpn3ehpjz.fsf@HIDDEN> <83mtyierfs.fsf@HIDDEN> Date: Sat, 12 Dec 2020 16:06:54 -0500 In-Reply-To: <83mtyierfs.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 12 Dec 2020 21:48:39 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.069 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: bzg@HIDDEN, 45198 <at> debbugs.gnu.org, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> static void >> redisplay_internal (void) >> { >> + /* Not sure if it's important to avoid redisplay inside a sandbox, >> + but it seems safer to avoid risking introducing security holes via >> + image libraries and such. */ >> + ensure_no_sandbox (); > > You cannot usefully call error from redisplay. Hmm... but this is at the entrance to redisplay, so I though it should still be safe at that point. If it's a problem we can replace the above with if (emacs_is_sandboxed) return; -- Stefan
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at 45198) by debbugs.gnu.org; 12 Dec 2020 19:49:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 12 14:49:02 2020 Received: from localhost ([127.0.0.1]:46664 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1koAt3-0006qQ-R7 for submit <at> debbugs.gnu.org; Sat, 12 Dec 2020 14:49:02 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47476) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1koAt2-0006py-2z for 45198 <at> debbugs.gnu.org; Sat, 12 Dec 2020 14:49:00 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:50666) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1koAsw-00014q-MR; Sat, 12 Dec 2020 14:48:54 -0500 Received: from [176.228.60.248] (port=3847 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1koAsu-0000Se-RI; Sat, 12 Dec 2020 14:48:53 -0500 Date: Sat, 12 Dec 2020 21:48:39 +0200 Message-Id: <83mtyierfs.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> In-Reply-To: <jwvpn3ehpjz.fsf@HIDDEN> (message from Stefan Monnier on Sat, 12 Dec 2020 13:01:04 -0500) Subject: Re: bug#45198: 28.0.50; Sandbox mode References: <jwvpn3ehpjz.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45198 Cc: bzg@HIDDEN, 45198 <at> debbugs.gnu.org, joaotavora@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Stefan Monnier <monnier@HIDDEN> > Date: Sat, 12 Dec 2020 13:01:04 -0500 > Cc: Bastien <bzg@HIDDEN>, > João Távora <joaotavora@HIDDEN> > > static void > redisplay_internal (void) > { > + /* Not sure if it's important to avoid redisplay inside a sandbox, > + but it seems safer to avoid risking introducing security holes via > + image libraries and such. */ > + ensure_no_sandbox (); You cannot usefully call error from redisplay.
bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 12 Dec 2020 18:19:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 12 13:19:48 2020 Received: from localhost ([127.0.0.1]:46384 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ko9Uh-00005r-G9 for submit <at> debbugs.gnu.org; Sat, 12 Dec 2020 13:19:48 -0500 Received: from lists.gnu.org ([209.51.188.17]:59840) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1ko9Uf-00005i-O7 for submit <at> debbugs.gnu.org; Sat, 12 Dec 2020 13:19:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57788) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <monnier@HIDDEN>) id 1ko9Uf-0001Ug-HC for bug-gnu-emacs@HIDDEN; Sat, 12 Dec 2020 13:19:45 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:40496) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <monnier@HIDDEN>) id 1ko9UZ-0002Je-4U for bug-gnu-emacs@HIDDEN; Sat, 12 Dec 2020 13:19:44 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 70572440F18 for <bug-gnu-emacs@HIDDEN>; Sat, 12 Dec 2020 13:01:10 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 8766E440C81 for <bug-gnu-emacs@HIDDEN>; Sat, 12 Dec 2020 13:01:05 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607796065; bh=6moWS3PcQQwNhJrOlK2HH1Zp99YpES4JTXd/Kwohx2M=; h=From:To:Subject:Date:From; b=QEFcd6Y/qxeokKcIkoKiL1cbk59eotbql6FsDizKrV3zOvbzlPq9ab+pfjBpEVDQB KbD41x+AeVXxmAoJKL/rR3nmD3KGvqLnimeyhZY5axBWrEesyIGf9RM/5GWub347hp 08TONzyu1+M3vSdDBOnV/OAsDtnw1kosNYare4J9Y6dQFyccFi6UAcmV/gecAiZ/vx DlwT3jP50X5788NkCnmCt3GDGiiVYwSabVBp4eOWzM55gpXIEj6vA2sZB+kKuAcMkN 0tKYvXj3ZLZ6kLev64Z4/NVJCQ9mSg999DwGP17U4ePlMzld5hdXGJrk5tcImRr/K1 B5RF0wYu86EmQ== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 59FD712045F for <bug-gnu-emacs@HIDDEN>; Sat, 12 Dec 2020 13:01:05 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: bug-gnu-emacs@HIDDEN Subject: 28.0.50; Sandbox mode X-debbugs-Cc: =?iso-8859-1?Q?Jo=E3o_T=E1vora?= <joaotavora@HIDDEN>, Bastien <bzg@HIDDEN> Date: Sat, 12 Dec 2020 13:01:04 -0500 Message-ID: <jwvpn3ehpjz.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.068 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@HIDDEN; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.3 (--) Package: Emacs Version: 28.0.50 Currently we cannot enable `flymake-mode` by default in `elisp-mode` for simple reasons of security: having this mode enabled means that whenever we happen to open a file containing ELisp code, our Emacs will happily try to compile this file, including evaluating arbitrary code contained in its macros. Similarly, elpa.gnu.org can't automatically take a documentation file in Org format and convert it to Texinfo (and then Info) when generating a package's tarball, because the Org -> Texinfo conversion can run arbitrary code. To try and address these problems I suggest the function `sandbox-enter` in the patch below, which should let us run untrusted ELisp code safely (in an Emacs subprocess). The patch for `elisp-flymake-byte-compile` is just there to give an idea of how I expect it to work: currently the compiler will still try to write the result of its compilation, which will fail because we're now sandboxed, so it needs more work before it behaves like it should. One thing I'm particularly eager to hear your opinion about is whether there might be more holes to plug (i.e. more places where we need to call `ensure_no_sandbox`). Clearly, from a security perspective, this is the main drawback of this approach: it's based on a black list rather than on a whitelist. Still, I have the impression that it should be manageable. Stefan diff --git a/etc/NEWS b/etc/NEWS index 514209516d..9a569b4bd2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -85,6 +85,16 @@ useful on systems such as FreeBSD which ships only with "etc/termcap". * Changes in Emacs 28.1 +** Sandbox mode to run untrusted code. +The new function 'sandbox-enter' puts Emacs mode into a state in which +it can (hopefully) run untrusted code safely. This mode is restricted such +that Emacs cannot exit the mode, nor can it write to files or launch +new processes. It can still read arbitrary files and communicate over +pre-existing communication links. This can only be used in batch mode. +The expected use is to launch a new batch Emacs session, put it +into sandbox mode, then run the untrusted code, send back the +result via 'message', and then exit. + ** Minibuffer scrolling is now conservative by default. This is controlled by the new variable 'scroll-minibuffer-conservatively'. diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index fa360a8f3f..189ee896b6 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -1839,6 +1839,7 @@ elisp-flymake--batch-compile-for-flymake (push (list string position fill level) collected) t))) + (sandbox-enter) ;FIXME: this will break the subsequent delete-file! (unwind-protect (byte-compile-file file) (ignore-errors diff --git a/src/emacs-module.c b/src/emacs-module.c index 0f3ef59fd8..1bebdfeb4a 100644 --- a/src/emacs-module.c +++ b/src/emacs-module.c @@ -1091,6 +1091,7 @@ DEFUN ("module-load", Fmodule_load, Smodule_load, 1, 1, 0, doc: /* Load module FILE. */) (Lisp_Object file) { + ensure_no_sandbox (); dynlib_handle_ptr handle; emacs_init_function module_init; void *gpl_sym; @@ -1151,6 +1152,7 @@ DEFUN ("module-load", Fmodule_load, Smodule_load, 1, 1, 0, Lisp_Object funcall_module (Lisp_Object function, ptrdiff_t nargs, Lisp_Object *arglist) { + ensure_no_sandbox (); const struct Lisp_Module_Function *func = XMODULE_FUNCTION (function); eassume (0 <= func->min_arity); if (! (func->min_arity <= nargs diff --git a/src/emacs.c b/src/emacs.c index 2a32083ba1..0df70ae43e 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -139,6 +139,8 @@ #define MAIN_PROGRAM struct gflags gflags; bool initialized; +bool emacs_is_sandboxed; + /* If true, Emacs should not attempt to use a window-specific code, but instead should use the virtual terminal under which it was started. */ bool inhibit_window_system; @@ -2886,6 +2888,30 @@ DEFUN ("daemon-initialized", Fdaemon_initialized, Sdaemon_initialized, 0, 0, 0, return Qt; } +DEFUN ("sandbox-enter", Fsandbox_enter, Ssandbox_enter, 0, 0, 0, + doc: /* Put Emacs in sandboxed mode. +After calling this function, Emacs cannot have externally visible +side effects any more. For example, it will not be able to write to files, +create new processes, open new displays, or call functionality provided by +modules, ... +It can still send data to pre-existing processes, on the other hand. +There is no mechanism to exit sandboxed mode. */) + (void) +{ + if (!noninteractive) + /* We could allow a sandbox in interactive sessions, but it seems + useless, so we'll assume that it was a pilot-error. */ + error ("Can't enter sandbox in interactive session"); + emacs_is_sandboxed = true; + return Qnil; +} + +void ensure_no_sandbox (void) +{ + if (emacs_is_sandboxed) + error ("Sandboxed"); +} + void syms_of_emacs (void) { @@ -2906,6 +2932,7 @@ syms_of_emacs (void) defsubr (&Sinvocation_directory); defsubr (&Sdaemonp); defsubr (&Sdaemon_initialized); + defsubr (&Ssandbox_enter); DEFVAR_LISP ("command-line-args", Vcommand_line_args, doc: /* Args passed by shell to Emacs, as a list of strings. diff --git a/src/fileio.c b/src/fileio.c index 702c143828..e221048493 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -689,6 +689,7 @@ DEFUN ("make-temp-file-internal", Fmake_temp_file_internal, (Lisp_Object prefix, Lisp_Object dir_flag, Lisp_Object suffix, Lisp_Object text) { + ensure_no_sandbox (); CHECK_STRING (prefix); CHECK_STRING (suffix); Lisp_Object encoded_prefix = ENCODE_FILE (prefix); @@ -2043,6 +2044,7 @@ DEFUN ("copy-file", Fcopy_file, Scopy_file, 2, 6, Lisp_Object keep_time, Lisp_Object preserve_uid_gid, Lisp_Object preserve_permissions) { + ensure_no_sandbox (); Lisp_Object handler; ptrdiff_t count = SPECPDL_INDEX (); Lisp_Object encoded_file, encoded_newname; @@ -2301,6 +2303,7 @@ DEFUN ("make-directory-internal", Fmake_directory_internal, doc: /* Create a new directory named DIRECTORY. */) (Lisp_Object directory) { + ensure_no_sandbox (); const char *dir; Lisp_Object handler; Lisp_Object encoded_dir; @@ -2327,6 +2330,7 @@ DEFUN ("delete-directory-internal", Fdelete_directory_internal, doc: /* Delete the directory named DIRECTORY. Does not follow symlinks. */) (Lisp_Object directory) { + ensure_no_sandbox (); const char *dir; Lisp_Object encoded_dir; @@ -2356,6 +2360,7 @@ DEFUN ("delete-file", Fdelete_file, Sdelete_file, 1, 2, With a prefix argument, TRASH is nil. */) (Lisp_Object filename, Lisp_Object trash) { + ensure_no_sandbox (); Lisp_Object handler; Lisp_Object encoded_file; @@ -2494,6 +2499,7 @@ DEFUN ("rename-file", Frename_file, Srename_file, 2, 3, This is what happens in interactive use with M-x. */) (Lisp_Object file, Lisp_Object newname, Lisp_Object ok_if_already_exists) { + ensure_no_sandbox (); Lisp_Object handler; Lisp_Object encoded_file, encoded_newname; @@ -2614,6 +2620,7 @@ DEFUN ("add-name-to-file", Fadd_name_to_file, Sadd_name_to_file, 2, 3, This is what happens in interactive use with M-x. */) (Lisp_Object file, Lisp_Object newname, Lisp_Object ok_if_already_exists) { + ensure_no_sandbox (); Lisp_Object handler; Lisp_Object encoded_file, encoded_newname; @@ -2667,6 +2674,7 @@ DEFUN ("make-symbolic-link", Fmake_symbolic_link, Smake_symbolic_link, 2, 3, This happens for interactive use with M-x. */) (Lisp_Object target, Lisp_Object linkname, Lisp_Object ok_if_already_exists) { + ensure_no_sandbox (); Lisp_Object handler; Lisp_Object encoded_target, encoded_linkname; @@ -3176,6 +3184,7 @@ DEFUN ("set-file-selinux-context", Fset_file_selinux_context, or if Emacs was not compiled with SELinux support. */) (Lisp_Object filename, Lisp_Object context) { + ensure_no_sandbox (); Lisp_Object absname; Lisp_Object handler; #if HAVE_LIBSELINUX @@ -3307,6 +3316,7 @@ DEFUN ("set-file-acl", Fset_file_acl, Sset_file_acl, support. */) (Lisp_Object filename, Lisp_Object acl_string) { + ensure_no_sandbox (); #if USE_ACL Lisp_Object absname; Lisp_Object handler; @@ -3392,6 +3402,7 @@ DEFUN ("set-file-modes", Fset_file_modes, Sset_file_modes, 2, 3, symbolic notation, like the `chmod' command from GNU Coreutils. */) (Lisp_Object filename, Lisp_Object mode, Lisp_Object flag) { + ensure_no_sandbox (); CHECK_FIXNUM (mode); int nofollow = symlink_nofollow_flag (flag); Lisp_Object absname = Fexpand_file_name (filename, @@ -3458,6 +3469,7 @@ DEFUN ("set-file-times", Fset_file_times, Sset_file_times, 1, 3, 0, TIMESTAMP is in the format of `current-time'. */) (Lisp_Object filename, Lisp_Object timestamp, Lisp_Object flag) { + ensure_no_sandbox (); int nofollow = symlink_nofollow_flag (flag); struct timespec ts[2]; @@ -5039,6 +5051,7 @@ DEFUN ("write-region", Fwrite_region, Swrite_region, 3, 7, (Lisp_Object start, Lisp_Object end, Lisp_Object filename, Lisp_Object append, Lisp_Object visit, Lisp_Object lockname, Lisp_Object mustbenew) { + ensure_no_sandbox (); return write_region (start, end, filename, append, visit, lockname, mustbenew, -1); } @@ -5837,6 +5850,7 @@ DEFUN ("do-auto-save", Fdo_auto_save, Sdo_auto_save, 0, 2, "", A non-nil CURRENT-ONLY argument means save only current buffer. */) (Lisp_Object no_message, Lisp_Object current_only) { + ensure_no_sandbox (); struct buffer *old = current_buffer, *b; Lisp_Object tail, buf, hook; bool auto_saved = 0; diff --git a/src/lisp.h b/src/lisp.h index e83304462f..107a2d9f03 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -603,6 +603,10 @@ #define ENUM_BF(TYPE) enum TYPE subsequent starts. */ extern bool initialized; +/* Whether we've been neutralized. */ +extern bool emacs_is_sandboxed; +extern void ensure_no_sandbox (void); + extern struct gflags { /* True means this Emacs instance was born to dump. */ diff --git a/src/process.c b/src/process.c index 4fe8ac7fc0..68460868c4 100644 --- a/src/process.c +++ b/src/process.c @@ -862,6 +862,8 @@ allocate_pty (char pty_name[PTY_NAME_SIZE]) static struct Lisp_Process * allocate_process (void) { + ensure_no_sandbox (); + return ALLOCATE_ZEROED_PSEUDOVECTOR (struct Lisp_Process, thread, PVEC_PROCESS); } diff --git a/src/xdisp.c b/src/xdisp.c index 96dd4fade2..72c37e8194 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -15442,6 +15442,10 @@ #define RESUME_POLLING \ static void redisplay_internal (void) { + /* Not sure if it's important to avoid redisplay inside a sandbox, + but it seems safer to avoid risking introducing security holes via + image libraries and such. */ + ensure_no_sandbox (); struct window *w = XWINDOW (selected_window); struct window *sw; struct frame *fr; diff --git a/src/xterm.c b/src/xterm.c index 3de0d2e73c..e8a4d2f29d 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -12698,6 +12698,7 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) xcb_connection_t *xcb_conn; #endif + ensure_no_sandbox (); block_input (); if (!x_initialized)
Stefan Monnier <monnier@HIDDEN>
:joaotavora@HIDDEN, bzg@HIDDEN, bug-gnu-emacs@HIDDEN
.
Full text available.joaotavora@HIDDEN, bzg@HIDDEN, bug-gnu-emacs@HIDDEN
:bug#45198
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.