• 6 Posts
  • 595 Comments
Joined 1 year ago
cake
Cake day: June 6th, 2023

help-circle




  • I quite like how Dwarf Fortress treats elves with contempt. If you try to sell them wooden furniture, they sink to their knees and weep at the loss of life, vowing to never trade with you again.

    Naturally, this leads to many players inviting an Elven caravan into their fortresses, sealing the doors shut, setting traps, and letting nature take its course


  • Our physics department used KDE managed over network shares implemented by one professor in his free time, in complete defiance of the rest of the university which used windows.

    Even now they’re still holding out strong, whilst Microsoft eats the rest of the university alive.
    (sidenote: I get it, tech support in Linux is vritually non-existent, whilst tech-support in Windows is everywhere)



  • The one thing I like about Starmer is that he doesn’t try to be funny. He tries to be a politician. A bad one. One that inherited a broken system. One who is also now under fire from criticism of corruption. But he doesn’t shy away from it. He attends interviews where he gets regularly roasted for his bad performance, and he trucks on.

    I don’t like him, but I respect what he tries to be.






  • The questionable commit:

        {
          // Add the first line of localized text...
          cupsFilePrintf(fp, "*%s.%s %s/", lang->language, ppd_option, ppd_choice);
          while (*text && *text != '\n')
          {
            // Escape ":" and "<"...
            if (*text == ':' || *text == '<')
              cupsFilePrintf(fp, "<%02X>", *text);
            else
              cupsFilePutChar(fp, *text);
            text ++;
          }
          cupsFilePuts(fp, ": \"\"\n");
        }
    

    Can someone explain to me how this allows arbitrary code execution? As far as I can see, all it does iterate through a string and markup some special characters.

    Edit: Okay, after reading the blog post, and this fantastic bug report, it sounds like to print to a CUPS server, you send it a message on port 631 using an IPP (some print protocol) server. CUPS then requests attributes of the IPP server, one of which being the print filter command to run (“Foomatic-rip”) to use to convert a PS or PDF into native print code. By requesting attributes, an exploit involving string escaping through the use of unexpected spaces or quotes can override the Foomatic print command. Arbitrary text can be supplanted, which will then be executed by the CUPS server.