• 56 Posts
  • 312 Comments
Joined 8 months ago
cake
Cake day: February 10th, 2024

help-circle

  • Either of these commands will reveal processes listening on the port that’s vulnerable by default:

    $ sudo lsof -i :631
    
    $ sudo fuser -v 631/tcp 631/udp
    

    The wording of this post gives me the impression that it could exploited even if you don’t have any such processes, if your system contacts a malicious or compromised print server. I would avoid browsing or using printers on unsafe networks until this is patched.

    The port 631 process just makes it worse, by allowing someone else to initiate that contact remotely.


  • Based on this…

    Exploitation involves sending a malicious UDP packet to port 631 on the target, directing it to an attacker-controlled IPP server. The system’s cups-browsed service then connects back, fetching printer attributes, which include malicious PPD directives. When a print job starts, these directives execute, allowing the attacker’s code to run on the target system.

    …it seems the exploit can be triggered either remotely through your CUPS instance listening on port 631, or locally by interacting with a malicious/compromised print server.

    So if I understand correctly, shutting down that port wouldn’t be enough by itself. You would also have to keep your system from initiating contact with such a server, such as by using a public printer, or conceivably even just browsing printers at a cafe/business/school. I haven’t read the exploit details, so I don’t know which interactions are safe, if any.









  • I mentioned Electron only to acknowledge a well-known cross-platform toolkit, not as an example of acceptable results.

    Tauri on Linux is effectively a Gtk wrapper (plus WebKit), which makes it unappealing to me. I keep it bookmarked anyway just in case I find myself in a situation where the only other option is Electron, since I suspect Tauri would at least be lighter on system resources.


  • I don’t enjoy writing in Tcl. If I were to use Tk today, it would probably be through Python’s tkinter package.

    IMHO, Tk interfaces look awful by default, but they can be made to look pretty decent if you’re willing to hunt for (or create) a good theme. I have considered it a couple of times for trivial tool UIs, and I occasionally use one that someone else wrote.

    That said, getting it to look native on multiple platforms would take more effort than I feel is worthwhile, and getting it to feel native (keyboard nav, etc.) even more so. Qt has this stuff built in, and a lot more.


  • be as portable as possible

    This is important to me, which narrows down my options quite a bit.

    Electron is portable across desktop OS, but unacceptably bloated (I don’t want my users to have to deal with that) and buggy (I don’t want to deal with that).

    wxWidgets and various similar wrapper libraries exist, but on Linux most of them wrap Gtk, which in recent years has become very opinionated in UI directions that I find intolerable.

    A few new cross-platform GUI toolkits have been appearing recently, but I’ve found all of them suffer from poor text handling, anemic widget sets, or very out-of-place look and feel (especially keyboard navigation) relative to native applications.

    That leaves Qt as my only reasonable choice, at least for now. This is mostly okay, as it does a wonderful job all around. My main complaint is that using the full power of its widgets and libraries means I’m restricted to a handful of languages: C++, Python, and maybe one or two minor ones like D. Its declarative API (Qt Quick) seems to be getting more language bindings, though, so simpler apps might be possible in other languages.

    Note that the landscape is different for mobile apps. I don’t have a recommendation for those.


  • “Feel,” “happy,” “comfortable”… Privacy doesn’t care about your feelings.

    The motivation to do the work, spend time learning the risks and available mitigations, disrupt existing social relationships in order to adopt better tools, inconvenience friends and family, partially isolate one’s self by avoiding the popular systems… all of these things are part of improving privacy in the real world, and at least for many people, fueled by a person’s feelings. Don’t discount the human factors just because you can’t quantify them.



  • Signal is not my tool of choice, so I’ll answer from a more general perspective:

    Having multiple friends and social groups on an e2ee chat system for the past few years feels great. Knowing that our words aren’t being recorded and exploited by half a dozen companies, we no longer feel the need to self-censor. The depth and value of our online conversations have grown noticeably.

    Yes, there is more work to do, both at the endpoints and in the protocols. No, not all of us have flipped all the switches to maximize our privacy yet. That’s okay. Migrating is a gradual process. We do it together, helping each other along the way, rather than trying to force it all at once. Every step an improvement.





  • https://en.wikipedia.org/wiki/Internet_Draft

    I think it’s pretty clear that IETF drafts are not what author meant when he wrote draft, and I’m pretty sure the IETF doesn’t have much to do with C++ standards.

    Are you under the impression that there is no other sense of the word?

    It might help you in the future when you are discussing things like drafts, specifications, and proposals.

    As it turns out, I have done more than a little of that. Thankfully, I don’t usually see such condescending remarks in the process, nor such insistence on misunderstanding. Good luck to you, too.