Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 15 submissions in the queue.
posted by martyb on Tuesday November 02 2021, @03:22AM   Printer-friendly
from the sky-is-falling-again dept.

Brian Krebs reports today on the biggest global information security freak-out since Heartbleed (2014). Or not -- I'm not sure.

Virtually all compilers -- programs that transform human-readable source code into computer-executable machine code -- are vulnerable to an insidious attack in which an adversary can introduce targeted vulnerabilities into any software without being detected, new research released today warns. The vulnerability disclosure was coordinated with multiple organizations, some of whom are now releasing updates to address the security weakness.

TL/DR: Because of Unicode string processing in all editors and compilers, and specifically how RTL [Right-to-Left][*] and LTR [Left-to-Right][*] control codes are supposed to affect the ordering of all characters regardless of whether or not they belong to an LTR language... Any source code processed by a Unicode-aware compiler is subject to hidden meaning where what's rendered in your editor or terminal is not what is actually read by the compiler. Re-ordering the display of characters in a block of code can change the meaning of comparison statements, string or number constants, and comments.

Krebs cites a paper (PDF) from researchers at the University of Cambridge, which contains some nifty code examples including changing "User is not in Admin group" to render as logic for "User is in Admin group" in every source control tool or editor you might use. This sort of supply chain attack can be inserted by anyone with commit access to the code you use from upstream sources -- disgruntled employees, open source contributors; virtually all software you use now could be a target.

Is this the end of the world, or just another Monday?

This post was written in pure ASCII, just to be safe.

[*] https://en.wikipedia.org/wiki/Right-to-left_mark.


Original Submission

This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
  • (Score: 5, Funny) by Anonymous Coward on Tuesday November 02 2021, @03:36AM (2 children)

    by Anonymous Coward on Tuesday November 02 2021, @03:36AM (#1192646)

    Is this the end of the world, or just another Monday?

    Both.

    • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @04:47AM

      by Anonymous Coward on Tuesday November 02 2021, @04:47AM (#1192662)

      just another manic monday

    • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @04:58AM

      by Anonymous Coward on Tuesday November 02 2021, @04:58AM (#1192665)
      Sounds more like slow news day.
  • (Score: 3, Touché) by drussell on Tuesday November 02 2021, @03:39AM (30 children)

    by drussell (2678) on Tuesday November 02 2021, @03:39AM (#1192648) Journal

    Who the fork-a-frick-a-frack edits their code in an environment that even understands unicode?!

    I'm pretty sure I'm safe with vi on a serial terminal or fully-text-only console...

    • (Score: 5, Insightful) by FatPhil on Tuesday November 02 2021, @04:20AM (3 children)

      by FatPhil (863) <{pc-soylent} {at} {asdf.fi}> on Tuesday November 02 2021, @04:20AM (#1192654) Homepage
      I'm pretty sure you're vulnerable. The political correctness of "all languages are equal" kicked into overdrive two decades back. My phone's busybox vi from the 2000s, with almost no features enabled at all, handles unicode and utf-8.

      The malware writers would like to thank you for your blind cooperation.
      --
      Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
      • (Score: 5, Insightful) by tangomargarine on Tuesday November 02 2021, @04:43AM

        by tangomargarine (667) on Tuesday November 02 2021, @04:43AM (#1192660)

        Plenty of languages handle Unicode, but at least some of them require you escape it, which seems like the more reasonable path, so you can save your source as plain ASCII or whatever.

        Understanding Unicode is one thing; displaying it as-is is another. Especially when you're talking about coding, which really should have no reason to "pretty print" things. Do it like emacs does and display it as flagrantly a special character like "\233" or something.

        --
        "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
      • (Score: -1, Troll) by Anonymous Coward on Tuesday November 02 2021, @06:00AM

        by Anonymous Coward on Tuesday November 02 2021, @06:00AM (#1192676)

        I'm pretty sure you're vulnerable.

        Oh, great, now I suspect FatPhil as being one of the malware authors! And he is right here on SoylentNews!!!

      • (Score: 5, Funny) by driverless on Tuesday November 02 2021, @09:13AM

        by driverless (4770) on Tuesday November 02 2021, @09:13AM (#1192704)

        I'm pretty sure you're vulnerable. The political correctness of "all languages are equal" kicked into overdrive two decades back. My phone's busybox vi from the 2000s, with almost no features enabled at all, handles unicode and utf-8.

        This is why I edit all my code as comments on Slashdot, that doesn't even know about latin-1 so I'm fully protected.

    • (Score: 5, Insightful) by tangomargarine on Tuesday November 02 2021, @04:39AM (13 children)

      by tangomargarine (667) on Tuesday November 02 2021, @04:39AM (#1192659)

      Probably the same people who think that Python using indentation to compile was a good idea. Because what could possibly go wrong?

      I did a little bit of Python for work and it's got some nice ideas, but seriously, the indentation thing is just crazy.

      --
      "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
      • (Score: 2, Troll) by PiMuNu on Tuesday November 02 2021, @06:01AM (11 children)

        by PiMuNu (3823) on Tuesday November 02 2021, @06:01AM (#1192677)

        > the indentation thing is just crazy.

        Why?Ormorespecificallydoyoubelievethatpeopleshouldbefreeto

        put in whitespace

        whereverthey like?

        • (Score: 0, Flamebait) by Anonymous Coward on Tuesday November 02 2021, @06:56AM (5 children)

          by Anonymous Coward on Tuesday November 02 2021, @06:56AM (#1192684)

          The issue is that whitespace has semantic meaning above and beyond token separation in python.

          Why you gotta lie and distract on purpose?

          • (Score: 0, Informative) by Anonymous Coward on Tuesday November 02 2021, @09:02AM

            by Anonymous Coward on Tuesday November 02 2021, @09:02AM (#1192703)

            Whitespace has semantic meaning above and beyond token separation in most languages. Its just that python has it for more than the human compiler too.

          • (Score: 2) by PiMuNu on Tuesday November 02 2021, @01:39PM (3 children)

            by PiMuNu (3823) on Tuesday November 02 2021, @01:39PM (#1192737)

            Fair point, but every sane programmer I have seen since the 1980s uses indentation to delineate different levels of conditional/loop. So it is not too bad to make it a requirement of the language (or whenever fortran abandoned 7 white spaces with column 3 for comments). The only bad thing is that they let folks use tab indentation (which is a crime against humanity).

            • (Score: 1, Touché) by Anonymous Coward on Tuesday November 02 2021, @01:44PM (1 child)

              by Anonymous Coward on Tuesday November 02 2021, @01:44PM (#1192739)
              Tab indentation saves space in the source file, and you're free to set tab to indent however many spaces you want in your editor. There is only one true tab. But if you're one of those java or php morons sho insists in putting every parameter on its own line, you're fucked anyway.
              • (Score: 2) by PiMuNu on Wednesday November 03 2021, @11:23AM

                by PiMuNu (3823) on Wednesday November 03 2021, @11:23AM (#1192964)

                Saves space in the source file.

                Laughs.

            • (Score: 1) by shrewdsheep on Wednesday November 03 2021, @10:37AM

              by shrewdsheep (5215) on Wednesday November 03 2021, @10:37AM (#1192959)

              I am solidly in the tab-using camp using it for all languages including python. I used to be derogatory about the python white space handling but I have gotten over it some time ago. All languages have deep flaws and the lack of insight of the designers into certain aspects are showing blatantly. Use the right language for the task, write clear code and let other bicker about white space.

              What I have not seen in text editors but could help in these discussions is a way to reformat coding styles on the fly, i.e. re-format into your preferred style on loading and save into another style. This is not trivial as full parsing would be required but doable IMO.

        • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @07:06AM

          by Anonymous Coward on Tuesday November 02 2021, @07:06AM (#1192688)

          declare:belief[more(specific(why)){"U+0020"}.should.free.people

          FTFY

        • (Score: 5, Insightful) by tangomargarine on Tuesday November 02 2021, @02:12PM (3 children)

          by tangomargarine (667) on Tuesday November 02 2021, @02:12PM (#1192743)

          I like that thing in some IDEs where there's a key combination to auto-indent your code based on braces and various other things. You accidentally put a tab in the wrong place, and Python won't even compile, let alone manage to auto-indent (because the information to do so doesn't exist). So you can get in the situation where you can't be sure you're actually fixing the indentation correctly in code you're unfamiliar with, which is much less likely (although not impossible) with braces.

          --
          "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
          • (Score: 2) by PiMuNu on Tuesday November 02 2021, @02:25PM (2 children)

            by PiMuNu (3823) on Tuesday November 02 2021, @02:25PM (#1192747)
            Fair point. OTOH I have had situations in C code where the indentation was misleading/wrong as well... if (a != b); { do some stuff } HAHAHA Admittedly I was young, but that is a day of my life I will never get back.
            • (Score: 2) by PiMuNu on Tuesday November 02 2021, @02:36PM (1 child)

              by PiMuNu (3823) on Tuesday November 02 2021, @02:36PM (#1192750)

              if (a != b); {
                      do some stuff
              }

              • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @03:24PM

                by Anonymous Coward on Tuesday November 02 2021, @03:24PM (#1192761)

                if (a != b); {
                                do some stuff
                }

                look closer:

                if( a!= b ) ; // note semicolon
                {
                    do some stuff
                }

      • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @06:51PM

        by Anonymous Coward on Tuesday November 02 2021, @06:51PM (#1192832)

        my first lang with this behavior has been nim and it has caused zero issues for me. I like it in fact as it's actually easier to see what the hell is going on.

    • (Score: 5, Informative) by janrinok on Tuesday November 02 2021, @08:06AM (5 children)

      by janrinok (52) Subscriber Badge on Tuesday November 02 2021, @08:06AM (#1192698) Journal

      We don't all speak in ASCII you know. Look outside, there is a big wide world out there all speaking different languages.

      • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @01:40PM (2 children)

        by Anonymous Coward on Tuesday November 02 2021, @01:40PM (#1192738)
        Not my problem.We've known almost from the beginning that unicode was a clusterfuck. Don't use unicode, I want my code to be 7 bit clean. No unicode, no emojis, no other crap.

        It's code, not a haiku or poetry.

        I'm in favour of speaking more than one language, but code is code - KEEP IT SIMPLE, SHITHEAD. No accented characters, no crdilas, no circumflexes, no umlauts, nothing. Just look at how scammers have been using unicode to typosquat. North Korea takes in more than 2 billion a year from cyberscams. Boycott unicode - you're helping finance terrorists.

        • (Score: 3, Insightful) by janrinok on Tuesday November 02 2021, @04:04PM (1 child)

          by janrinok (52) Subscriber Badge on Tuesday November 02 2021, @04:04PM (#1192769) Journal

          So, for people who don't happen to use your language, how do they write meaningful function and variable names? Or do you believe that your ascii should be enforced upon others?

          The fault lies in the compilers. The article says that "some of whom are now releasing updates to address the security weakness". It can be fixed, so you leave your arrogant "Not my problem" out of this. You are the problem. The compiler can be changed - you, on the other hand, not so easily.

          • (Score: 1, Insightful) by Anonymous Coward on Wednesday November 03 2021, @04:23AM

            by Anonymous Coward on Wednesday November 03 2021, @04:23AM (#1192923)

            English is the #1 language in the world. If you throw in everyone who understands it as a second language, it's the majority of tge world's population. So again, for source code, 7 bit clean is good enough for the majority.

            After all, you STILL have to use the english keywords (if, switch, case, default, break, etc) or it won't compile anyway.

            Back in the 80s I wrote a program that changed the in-memory tokens in the BASIC interpreter to french, so you could actually use french keywords; saving code in binary format still used the english keyword tokens, which allowed for automatic translation between the two languages. Demoed it, it was pretty cool, but french users still preferred to code in english - out of habit and so as not to have to learn a second set of keywords. So I dropped it, having learned the lesson that people prefer one set of standards for things like keywords.

            And that's still true today. There is zero justification for including unicode in source code. Just explicitly escape it if you need to use it (example: a user message). For actual logic? Don't be illogical.

      • (Score: 2) by epitaxial on Tuesday November 02 2021, @02:07PM (1 child)

        by epitaxial (3165) on Tuesday November 02 2021, @02:07PM (#1192742)

        I use EBCDIC.

        • (Score: 0) by Anonymous Coward on Wednesday November 03 2021, @02:34AM

          by Anonymous Coward on Wednesday November 03 2021, @02:34AM (#1192914)

          Our mainframes support Unicode in EBCDIC. You can have the best (worst?) of both worlds over there.

    • (Score: 3, Interesting) by bradley13 on Tuesday November 02 2021, @11:45AM (2 children)

      by bradley13 (3053) on Tuesday November 02 2021, @11:45AM (#1192723) Homepage Journal

      Um, how about "almost everybody". If I understand TFA correctly, this applies to essentially every major IDE out there: IntelliJ, NetBeans, VSCode, Eclipse, etc, etc.. No, most people do not program in emacs or vi. Having IDE support makes most programmers more efficient. Also, for anyone working in a non-English-speaking environment, some text (for example, comments) may be written in languages that require something beyond the ASCII table.

      That said, code is always written left-to-right. It would be entirely reasonable for IDEs to flag LTR/RTL (and any other non-printing characters) in code as errors. Whether they should be acceptable in quoted text blocks or comments is a more difficult question.

      --
      Everyone is somebody else's weirdo.
      • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @01:46PM

        by Anonymous Coward on Tuesday November 02 2021, @01:46PM (#1192740)
        Speak for yourself. Not everyone want an IDE for coding.
      • (Score: 1, Interesting) by Anonymous Coward on Tuesday November 02 2021, @04:59PM

        by Anonymous Coward on Tuesday November 02 2021, @04:59PM (#1192789)

        There are projects working on right-to-left code to go along with spoken languages that work that way. As far as I know they don't have much traction yet, but since hundreds of millions of people speak languages like that I expect it to take off eventually.

    • (Score: 2) by DannyB on Tuesday November 02 2021, @03:35PM (2 children)

      by DannyB (5839) Subscriber Badge on Tuesday November 02 2021, @03:35PM (#1192762) Journal

      Who the fork-a-frick-a-frack edits their code in an environment that even understands unicode?!

      Java programmers and their various IDEs. (Integrated Development Embarrassment Environment)

      The Narns and Klingons will be very offended if you do not support their native languages with Unicode.

      I'm pretty sure I'm safe with vi on a serial terminal or fully-text-only console...

      Don't you realize all of the amazing power tools on a modern IDE? With just a right click and a few menu selections, you can screw up source code with much greater speed and efficiency than you would ever dream of with primitive tools like "vi".

      Some people don't like the noise and complexity of IDEs. Just as some prefer to dig a ditch with a shovel instead of the noise and complexity of a backhoe.

      The Java compiler understands Unicode.

      // constants
      public final double π = Math.PI; // Pi
      public final double τ = 2.0 * π; // Tau
      public final double ℯ = Math.E; // e

      private final int £€$æøå = 42;

      // a function
      public void £€$æøåσΣ() { }

      Here is a fun practical example:

      /**
      * Sigma function.
      * @param fn a Java 8 Function that takes an integer an returns an integer.
      * @param first
      * @param last
      * @return Sum of calling fn over range from first to last, incremented by one.
      */
      public int Σ( java.util.function.Function fn, int first, int last ) { . . . }

      --
      To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
      • (Score: 0) by Anonymous Coward on Wednesday November 03 2021, @04:33AM (1 child)

        by Anonymous Coward on Wednesday November 03 2021, @04:33AM (#1192924)
        >p> You've just made an excellent case against both Java and unicode in the source.

        As for IDEs, Borland c++ 3.1 with dual monitor support was good enough to be productive without all the crap IDEs like eclipse shovel onto us.

        Simplicity forces you to plan your shit. But then again, Java was so badly "optimised" that it couldn't even handle multiple inheritance - a basic flaw.

        • (Score: 0) by Anonymous Coward on Thursday November 04 2021, @06:56AM

          by Anonymous Coward on Thursday November 04 2021, @06:56AM (#1193225)

          A flaw? Maybe it just forces you to plan your shit.

  • (Score: 5, Informative) by owl on Tuesday November 02 2021, @03:46AM (6 children)

    by owl (15206) on Tuesday November 02 2021, @03:46AM (#1192649)

    Where have these researchers been since 1984? Have they never, ever, read Ken Thompson's paper "Reflections on Trusting Trust [win.tue.nl]"?

    Because if they had, then this exploit would:

    1. not seem so surprising
    2. not seem so threatening in light of Thompson's completely hidden from view variant that he detailed way back in the year 1984
    • (Score: 5, Insightful) by FatPhil on Tuesday November 02 2021, @04:44AM (5 children)

      by FatPhil (863) <{pc-soylent} {at} {asdf.fi}> on Tuesday November 02 2021, @04:44AM (#1192661) Homepage
      These are mostly unrelated issues. Trusting Trust was about hiding badness in the compiler, so that no examination of the source can reveal the problem. This is about hiding badness in the source where a simple 'od -tc' or 'LANG= cat' will reveal it.
      --
      Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
      • (Score: 4, Interesting) by maxwell demon on Tuesday November 02 2021, @07:42AM (4 children)

        by maxwell demon (1608) on Tuesday November 02 2021, @07:42AM (#1192692) Journal

        The LANG= will do nothing here because cat doesn't interpret the data; it just copies the bytes from input to output. It's your terminal that interprets the bytes as Unicode for display (and yes, I just tested it). On the other hand, if you display it with less (which you'd likely want to do anyway) it will work, because unless instructed otherwise, less will write byte values for all bytes outside the ASCII range.

        However, at least on my system, the terminal ignores the RTL character anyway.

        On the other hand, you don't need Unicode support to make your code look different to your eyes than to the compiler; pure ASCII suffices. Just try echo -e 'Test\b\b\boast' on the console. And no, less won't help with that; not even with LANG=

        However every decent editor should show you the special characters in some way in both cases.

        --
        The Tao of math: The numbers you can count are not the real numbers.
        • (Score: 2) by maxwell demon on Tuesday November 02 2021, @07:46AM (1 child)

          by maxwell demon (1608) on Tuesday November 02 2021, @07:46AM (#1192693) Journal

          Sorry for the self-reply; I noticed only after submission that my comment is misleading on the behaviour of less. Of course the “outside the ASCII range” only applies with LANG=.

          --
          The Tao of math: The numbers you can count are not the real numbers.
          • (Score: 2) by FatPhil on Tuesday November 02 2021, @11:39AM

            by FatPhil (863) <{pc-soylent} {at} {asdf.fi}> on Tuesday November 02 2021, @11:39AM (#1192722) Homepage
            Indeed. And it can even be fine tunable w.r.t. certain subsets of the space outside printable ASCII:

            -r or --raw-control-chars
                        Causes "raw" control characters to be displayed. The default
                        is to display control characters using the caret notation

            -R or --RAW-CONTROL-CHARS
                        Like -r, but only ANSI "color" escape sequences are output in
                        "raw" form.

            -u or --underline-special
                        Causes backspaces and carriage returns to be treated as print‐
                        able characters

            -U or --UNDERLINE-SPECIAL
                        Causes backspaces, tabs and carriage returns to be treated as
                        control characters; that is, they are handled as specified by
                        the -r option.
            --
            Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
        • (Score: 2) by FatPhil on Tuesday November 02 2021, @11:31AM (1 child)

          by FatPhil (863) <{pc-soylent} {at} {asdf.fi}> on Tuesday November 02 2021, @11:31AM (#1192721) Homepage
          Yup, I originally put 'less', and then at the very last minute just thought "cat's simpler", without thinking about the consequencews of the change. Thanks for correcting me.
          --
          Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
          • (Score: 4, Insightful) by maxwell demon on Tuesday November 02 2021, @12:01PM

            by maxwell demon (1608) on Tuesday November 02 2021, @12:01PM (#1192726) Journal

            Ah yes, “trivial” last-minute changes … who doesn't have experience with those :-)

            --
            The Tao of math: The numbers you can count are not the real numbers.
  • (Score: 3, Funny) by dltaylor on Tuesday November 02 2021, @03:48AM (16 children)

    by dltaylor (4693) on Tuesday November 02 2021, @03:48AM (#1192650)

    C, at least, has never needed one. When I need UNICODE in a program, those strings are compiled in their own module(s).

    What computer languages require UNICODE processing to create the source? If there is not one, then what kind of idiot (oh, yeah, some GenZ fashionista) would use such a tool? If there is one, it's probably the same kind of doofus that invented it.

    • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @04:24AM (4 children)

      by Anonymous Coward on Tuesday November 02 2021, @04:24AM (#1192655)

      I don't know of any programming language whose keywords are not in 7-bit ASCII code.

      The problem is decoding multi-byte Unicode characters/escape sequences, mixing up keywords and strings, causing ambiguities.

      • (Score: 1, Troll) by FatPhil on Tuesday November 02 2021, @04:59AM (3 children)

        by FatPhil (863) <{pc-soylent} {at} {asdf.fi}> on Tuesday November 02 2021, @04:59AM (#1192666) Homepage
        Thank you for letting us know you have no knowledge of computing, and can safely ignore your input. You appear entirely aware of everything from APL, control-meta-cokebottles, Sinclair and other 80s home computers, and a whole lot since.

        Sure, there was a mass-extinction event, but nothing removed the incentive to evolve in that direction again, so naturally we repeated the same old mistakes.
        --
        Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
        • (Score: 1, Touché) by Anonymous Coward on Tuesday November 02 2021, @05:19AM (1 child)

          by Anonymous Coward on Tuesday November 02 2021, @05:19AM (#1192669)

          You are drunk. That's Ok, so am I.

          Me, whiskey and beer. You?

          • (Score: 2) by FatPhil on Tuesday November 02 2021, @03:19PM

            by FatPhil (863) <{pc-soylent} {at} {asdf.fi}> on Tuesday November 02 2021, @03:19PM (#1192759) Homepage
            My wireless keyboard sometimes goes to sleep and will typically drop 2 characters when waking up. Never blame on drunkenness what can be blamed on cheap chinese tech.
            --
            Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
        • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @01:51PM

          by Anonymous Coward on Tuesday November 02 2021, @01:51PM (#1192741)
          You seem to have forgotten that 7-bit clean is a subset of 8 bit ascii. And that everyone was using the lower 7 bits for keywords in pretty much every programming language.
    • (Score: 2) by FatPhil on Tuesday November 02 2021, @04:38AM (4 children)

      by FatPhil (863) <{pc-soylent} {at} {asdf.fi}> on Tuesday November 02 2021, @04:38AM (#1192658) Homepage
      Why do you think the needs of a programming language have any influence over limitting the features of software installed on a person's machine? Needs define lower bounds on functionality, not upper bounds. All that extra shit just comes for free, because whiny post-hippies thought it would be cool if could be more inclusive.
      --
      Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
      • (Score: 1, Insightful) by Anonymous Coward on Tuesday November 02 2021, @09:13AM (3 children)

        by Anonymous Coward on Tuesday November 02 2021, @09:13AM (#1192705)

        Needs define lower bounds on functionality, not upper bounds.

        This stupid notion is precisely the root of all evil. "Idle hands are the devil’s workshop"

        Things not needed, should NOT be done. Period. Full stop.

        • (Score: 5, Touché) by maxwell demon on Tuesday November 02 2021, @11:27AM (1 child)

          by maxwell demon (1608) on Tuesday November 02 2021, @11:27AM (#1192720) Journal

          Things not needed, should NOT be done. Period. Full stop.

          Adding “Full Stop.” at the end was clearly not needed. Therefore according to your own rule, you should't have done it. In other words, you are breaking your own rules.

          Anyway, was your comment needed at all? I doubt so. Indeed, in the grand scheme of things it probably didn't make any significant difference. Therefore according to your rule, you shouldn't have written it.

          --
          The Tao of math: The numbers you can count are not the real numbers.
          • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @02:24PM

            by Anonymous Coward on Tuesday November 02 2021, @02:24PM (#1192746)

            When attempting to appear smart, extra verbosity does not help. Do not strain yourself in vain.

        • (Score: 2) by FatPhil on Tuesday November 02 2021, @03:23PM

          by FatPhil (863) <{pc-soylent} {at} {asdf.fi}> on Tuesday November 02 2021, @03:23PM (#1192760) Homepage
          That you think actual reality is a mere "notion" is an example of what needs to stop. Reality runs downhill under gravity like quicksilver, just taking whatever path seems easiest at the time, and you normally end up with a polluted ecosystem.

          Idealism is nice, but nothing but a pipe dream. Stop pretending that idealism is what actually happens.
          --
          Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
    • (Score: 3, Interesting) by krishnoid on Tuesday November 02 2021, @04:52AM (2 children)

      by krishnoid (1156) on Tuesday November 02 2021, @04:52AM (#1192664)

      Any programming language created by/for native speakers of something other than Latin-1 [sic]?

      • (Score: 2) by FatPhil on Tuesday November 02 2021, @05:08AM

        by FatPhil (863) <{pc-soylent} {at} {asdf.fi}> on Tuesday November 02 2021, @05:08AM (#1192668) Homepage
        The demands are lighter than that.
        Any Englishman demanding nothing more than a pound sign supports breaking away from ASCII.

        I say this as an Englishman who has never used a UK keyboard mapping, only ever a US one. I am not part of the problem - this is a xenophobia I *can* get behind.
        --
        Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
      • (Score: 1, Informative) by Anonymous Coward on Wednesday November 03 2021, @07:06AM

        by Anonymous Coward on Wednesday November 03 2021, @07:06AM (#1192937)

        APL

    • (Score: 4, Insightful) by PiMuNu on Tuesday November 02 2021, @06:17AM (1 child)

      by PiMuNu (3823) on Tuesday November 02 2021, @06:17AM (#1192680)

      > oh, yeah, some GenZ fashionista

      Someone who doesn't have a first language that uses Roman character set? You know, 2/3 of the world...

      • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @09:22AM

        by Anonymous Coward on Tuesday November 02 2021, @09:22AM (#1192707)

        Do you know of the uncounted attempts in those "2/3 of the world" to create "nativized" programming languages, none of which ever went anywhere? Stupid to insert yourself into this discussion if you do not; even stupider if you do.

        Politicking has no place in tech. The trouble is, the machinators pushing it there, are not who have to suffer the consequences.

    • (Score: 3, Insightful) by bradley13 on Tuesday November 02 2021, @11:50AM

      by bradley13 (3053) on Tuesday November 02 2021, @11:50AM (#1192724) Homepage Journal

      The world is not English. Even though most programmers write their code in something resembling English, they may well want at least the comments to be in their native language. I know some people who prefer to name variables in their native language. Non-English languages almost always include letters outside a-z/A-Z, and modern IDEs allow this with no problems.

      tl;dr: it's not at all unreasonable to expect Unicode support when coding, if you live in an area where English is not the main language.

      --
      Everyone is somebody else's weirdo.
  • (Score: 1, Touché) by Anonymous Coward on Tuesday November 02 2021, @03:55AM

    by Anonymous Coward on Tuesday November 02 2021, @03:55AM (#1192651)

    programs that transform human-readable source code into computer-executable machine code

    Not so readable for "regular" humans - e.g., Lisp codes, or even Perl.

  • (Score: 1, Informative) by Anonymous Coward on Tuesday November 02 2021, @04:07AM (4 children)

    by Anonymous Coward on Tuesday November 02 2021, @04:07AM (#1192652)

    what's rendered in your editor or terminal is not what is actually read by the compiler.

    There are bunch Unicode code points that look visually identical in fonts but are distinct characters.

    I guess the possibility of introducing vulnerability using this Unicode "feature" is minimal, but you never know.

    The point is, Unicode needs to be reigned in. That thing went crazy.

    • (Score: 1, Interesting) by Anonymous Coward on Tuesday November 02 2021, @07:01AM

      by Anonymous Coward on Tuesday November 02 2021, @07:01AM (#1192686)

      Our red team did a test of this today. Diffs were more obvious than I thought they would be, but that could maybe have passed inspection in a crunch or with a bit more effort. However that doesn't really matter because our already-existing checks we use caught it without any config changes. It also looked suspicious with syntax highlighting enabled. While I'm glad that the various tools out there will probably catch that so everyone can benefit from catching them, seems that anyone already aware of Unicode risks or using many public tools to lint/check their software were already safe.

    • (Score: 2) by driverless on Tuesday November 02 2021, @09:27AM

      by driverless (4770) on Tuesday November 02 2021, @09:27AM (#1192708)

      The Schneier blog has replies from people who inserted backdoors/other tricks without resorting to Unicode, so it's quite possible.

    • (Score: 2) by tangomargarine on Tuesday November 02 2021, @02:15PM (1 child)

      by tangomargarine (667) on Tuesday November 02 2021, @02:15PM (#1192745)

      The point is, Unicode needs to be reigned in.

      reign = to rule over
      rein = that thing you use with a horse

      --
      "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
      • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @05:51PM

        by Anonymous Coward on Tuesday November 02 2021, @05:51PM (#1192802)

        rein = whip

        At least according to Brandon when discussing mounted immigration agents.

  • (Score: 5, Funny) by fustakrakich on Tuesday November 02 2021, @05:04AM

    by fustakrakich (6150) on Tuesday November 02 2021, @05:04AM (#1192667) Journal

    Well, at least the green site is safe

    --
    La politica e i criminali sono la stessa cosa..
  • (Score: 3, Interesting) by maxwell demon on Tuesday November 02 2021, @07:58AM

    by maxwell demon (1608) on Tuesday November 02 2021, @07:58AM (#1192697) Journal

    This is just another instance of a known problem: What you see is not always what you get. [thejh.net]

    --
    The Tao of math: The numbers you can count are not the real numbers.
  • (Score: 0) by Anonymous Coward on Tuesday November 02 2021, @09:17AM

    by Anonymous Coward on Tuesday November 02 2021, @09:17AM (#1192706)

    This one's both trivial to catch, at least now we know about it. Cue a new default option to add some visual indication when RTL/LTR mode is flipped in your terminal emulator.

    And also - keep in mind anything malicious done in a widely-shared git repo becomes evidence that can't be deleted.
    That's sort of the point of Git. Edit history however you like - until you share it. At least we'll know what *was* compromised, if anything is. Honestly it's probably much worse news for the closed-source guys.

    It's a bit insidious, but as pointed out, doesn't hold a candle to 'Trusting Trust', OR the much more relevant work more recently by Christopher Domas.

    Probably by this point all mainstream CPU's have a separate hidden core for each major spy agency - all quite possibly unaware of each other.

    It's not like it's possible to ensure that the PC's used to design new chips are perfectly secure. So in principle, a 'trusting trust'-like attack on the HDL compilers themselves could be inserting such trojan cores into mainstream new chip designs without the HDL software tool or chip manufacturers having any clue.

    It's just not possible to have a human go over the whole design at layout time and look for anything that ought not to be there.

    Especially if any tool they might use to automate such a task could likewise be compromised.

    The designs are too big, with too many transistors, and too many layers of automation between the top level that engineers see, and what is actually fabricated.
    Just reverse engineering a single existing chip would likely take years, and noone is bothering. That horse has long bolted.

    If there's ever another world war, you can probably expect that all mass-manufactured CPU's will be knocked out first, via a coordinated attack likely involving such cores.

  • (Score: 1, Informative) by Anonymous Coward on Tuesday November 02 2021, @09:36AM (3 children)

    by Anonymous Coward on Tuesday November 02 2021, @09:36AM (#1192709)

    One grep to solve it all.

    • (Score: 3, Interesting) by maxwell demon on Tuesday November 02 2021, @11:51AM (2 children)

      by maxwell demon (1608) on Tuesday November 02 2021, @11:51AM (#1192725) Journal

      One grep to solve it all.

      ‮?gnihtyreve sehctac taht erus uoy erA‭

      Try it with this comment, for example.

      --
      The Tao of math: The numbers you can count are not the real numbers.
      • (Score: 0, Touché) by Anonymous Coward on Tuesday November 02 2021, @01:32PM (1 child)

        by Anonymous Coward on Tuesday November 02 2021, @01:32PM (#1192736)

        stdin is a very different beast than the paste buffer.

        • (Score: 3, Interesting) by FatPhil on Tuesday November 02 2021, @04:20PM

          by FatPhil (863) <{pc-soylent} {at} {asdf.fi}> on Tuesday November 02 2021, @04:20PM (#1192773) Homepage
          Who needs stdin?

          luser@spaz:/home/luser$ od -tc crap
          0000000 342 200 256 ? g n i h t y r e v e s
          0000020 e h c t a c t a h t e r u s
          0000040 u o y e r A 342 200 255 \n
          0000054
          luser@spaz:/home/luser$ grep -P '\x{2005}' crap
          luser@spaz:/home/luser$ grep -P '\x{202E}' crap
          ‮?gnihtyreve sehctac taht erus uoy erA‭

          To be honest, I thought SN stripped these characters, I'd support it so doing.
          --
          Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
  • (Score: 3, Interesting) by istartedi on Tuesday November 02 2021, @05:11PM

    by istartedi (123) on Tuesday November 02 2021, @05:11PM (#1192792) Journal

    If I were worried about this, I'd come up with some tool that scans the source for non-ASCII characters outside of quotes. I'd make that a pre-commit requirement (I haven't admined source control, but I'm given to understand you can do that). Not sure about other languages, but C, C++ and similar languages are ASCII and if you're handling Unicode in the actual code it's isolated to strings constants. This seems like a relatively straightforward problem to address (famous last words in security, I know).

    --
    Appended to the end of comments you post. Max: 120 chars.
  • (Score: 0) by Anonymous Coward on Wednesday November 03 2021, @10:34AM

    by Anonymous Coward on Wednesday November 03 2021, @10:34AM (#1192958)

    Breaking News! Idiots finally discovered unicode!

(1)