On Tue, Nov 16, 2021 at 12:13 PM Steven D'Aprano <st...@pearwood.info> wrote: > > On Mon, Nov 15, 2021 at 10:43:12PM +1100, Chris Angelico wrote: > > > The problems here are not Python's, they are code reviewers', and that > > means they're really attacks against the code review tools. > > I think that's a bit strong. Boucher and Anderson's paper describes > multiple kinds of vulnerabilities. At a fairly quick glance, the BIDI > attacks does seem to be a novel attack, and probably exploitable.
The BIDI attacks basically amount to making this: def func(): """This is a docstring"""; return look like this: def func(): """This is a docstring; return""" If you see something that looks like the second, but the word "return" is syntax-highlighted as a keyword instead of part of the string, the attack has failed. (Or if you ignore that, then your code review is flawed, and you're letting malicious code in.) The attack depends for its success on some human approving some piece of code that doesn't do what they think it does, and that means it has to look like what it doesn't do - which is an attack against what the code looks like, since what it does is very well defined. > Whereas the BIDI attacks do (apparently) make it easy to smuggle in > code: using invisible BIDI control codes, you can introduce source code > where the way the editor renders the code, and the way the coder reads > it, is different from the way the interpreter or compiler runs it. Right: the way the editor renders the code, that's the essential part. That's why I consider this an attack against some editor (or set of editors). When you find an editor that is vulnerable to this, file a bug report against that editor. The way the coder reads it will be heavily based upon the way the editor colours it. > That is, I think, new and exploitable: something that looks like a > comment is actually code that the interpreter runs, and something that > looks like code is actually a string or comment which is not executed, > but editors may syntax-colour it as if it were code. Right. Exactly my point: editors may syntax-colour it incorrectly. That's why I consider this not an attack on the language, but on the editor. As long as the editor parses it the exact same way that the interpreter does, there isn't a problem. ChrisA _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/3X6K5YYBRATECDRTN57XNT3QNP2J6ZBG/ Code of Conduct: http://python.org/psf/codeofconduct/