Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)M
Posts
21
Comments
418
Joined
3 yr. ago

  • Debian unstable/sid (the rolling branch) was affected. Debian is not special.

    Debian stable, Red Hat, and Ubuntu LTS were not affected. They also happen to be popular on servers, because of things like this.

    This specific attack was discovered early,

    Debian only updates packages on a new distro release, every 4 years. Red Hat does so every 13 years. There is a huge difference between a 6+ year window to detect packages, and a less than a week's notice because you are keeping up with the latest from upstream.

    The stable distro model is broken.

    I will address this one at the end, since it's a longer point.

    Distro developers are not better than upstreams at judging upstream code. Many non-security tagged bugs can become security ones.

    Okay. And? We are talking about supply chain security here.

    There is a huge difference between vetting packages once every 6 years, and the continuous, ongoing, toilsome process that you are made to in order to maintain systems like cargo's build system.

    despite actually shipping the compromised xz version? It’s Arch. Why? Because they didn’t patch systemd with xz support thinking they can outsmart an upstream.

    The XZ utils backdoor could have easily effected any distro that uses xz for any form of root/system level service. The backdoor makers decision to not do this doesn't actually make Arch or other distros that did this more secure. Debian stable did not receive vulnerable code in the first place. Big difference.

    Distros pull from upstreams anyway (code has to exist somewhere), crates.io included.

    This is because rust and crates makes it impossible to do any form of dynamic linking. Which is why some people have gripes with rust and avoid it.

    But for C, Java, and other languages, it is possible for distros to ship and manage libraries, which has the benefit that the various libraries can have their security issues fixed automatically.

    What makes you think JAVA or its ecosystem(s)

    The Java ecosystem, and it's various language specific package managers have lots of problems. But I am specifically talking about the Java ecosystem available from stable Linux distros, like Red Hat or Debian.

    So. Why would I want a stable distro? Why would I want "old" packages? The reason is very simple: The absolute guarantee of compatibility between the security updates, of the programs themselves, and dynamically linked libraries.

    If I make, say, a Java program, and tie it to Java packages available from the stable distro, when programs in that

    The model of vendoring dependencies, breaks this. With Cargo (or uv or etc), the programs move very fast, and updates break things. In order to prevent their program from breaking, developers pin packages. And then, they don't update them. This results in them shipping code with CVE's to their users, even though the CVE has already been fixed in an upstream version.

    I like to run cargo-audit, or the go equivalents on the open source projects I look at, and I almost always find vulnerabilities of varying degrees of criticallity. Here is cargo-audit ran against radicle-tui: https://gist.github.com/moonpiedumplings/7e71121b76c58ecaba4176be9bb827c4

    With a mere 5 months of not being touched, there are now present CVE's that are critical on the scoring system (radicles top repo had none yippee! and their second to top repo had a few mediums). It irritates me to see them in software that interacts with networked systems.

    I only very rarely find programs that are empty of CVE's. Usually only the most well resourced, active projects are able to keep their audit clean. It's a lot of work —

    Work that a stable distro automates. With a stable Linux distribution like Debian, I can be confident that if I make a program tied to libraries or programs that the distro provides, this stuff will automatically be patched and handled for me.

    Look, you don't have to use a stable distro on your own personal Linux desktop. I use Arch on my laptop. But for servers, not using pinned dependencies, and instead linking against libraries provided by distros means saving thousands of hours of toil doing basic cleanup of updating libraries and figuring out what the newer version of libraries broke. With a stable distro, you just do that once every six years.

  • One downside is that the cached file is not independently archived so it could be tampered with. Thanks for the idea.

    You could have multiple researchers archive it and store copies independently. Then tampering would show up accross copies.

    Unfortunately, central hosting doesn't guarantee that it is tamper free. The host could be hacked, or could be malicious. Archive.is was caught tampering with their archived pages:

    https://en.wikipedia.org/wiki/Wikipedia:Archive.today_guidance

  • Check out Zotero: https://www.zotero.org/

    Zotero is an open source bibliography manager. It's my main go to tool for generating works cited pages, like during essays.

    But, it also has a browser extension, which can download, and archive sites or academic articles you are adding to the sources. I would then use the fulltext search that zotero provides for easy searching of sources.

    Unfortunately, it's not hosted, which would make it difficult to share.

    EDIT: It does look like the server component is open source, AGPLv3: https://github.com/zotero/dataserver/

    But, I cannot find any deployment instructions. But, it looks like their hosted version lets users create groups of shared items, including sharing archived snapshots of the various items.

  • One issue I have with rust is that it adds another layer of trusting the compiler isn’t backdoored. All UNIX/Linux systems use the gcc toolchain

    They are probably also referring to this: https://kerkour.com/rust-supply-chain-nightmare

    In a recent analysis, Adam Harvey found that among the 999 most popular crates on crates.io, around 17% contained code that do not match their code repository.

    Cargo and crates are basically just as bad as npm, just less popular, which is why they haven't been hit yet.. And it's currently very difficult to build rust programs without cargo.

    Stable linux distributions have extremely strong supply chain security in comparison to language specific package managers. Debian, for example, was not affected by the xz utils backdoor, due to it's policy of only doing cherry picked security patches, and ignoring feature or bugfixes for the most part. Given the:

    installation instructions for Debian-based distros: here

    That's probably what the author was going for. Unfortunately I am too lazy to load up tor browser right now, to check the Debian installation instructions. I suspect they have their own repo with signed keys, just like Radicle does.

    Of course, C is still questionable. I would prefer Java if you cared strongly about supply chain security, since its a memory safe language with a mature ecosystem, and many packages available from Debian's repositories. But, it would be slower than C.

  • Calling an enterprise-grade platform

    Except you use JWT's for auth, which is idiotic and a security nightmare. No enterprise that cares about security would ever accept this.

    More info: https://gist.github.com/samsch/0d1f3d3b4745d778f78b230cf6061452

    There are other problems, some of which I can see... and some of which I can't. The problem is that I am not a comprehensive expert, I can only spot a few things here and there. Even if I was an expert, why would I audit your software for free lmao? Pay me for that shit.

    What I do know, is that vibecoded apps are bad at security. Many, many vibecoded apps have been hit by horrific security bugs like remote code execution, xss, or authentication bypasses. That shit is simply unacceptable and should be extremely rare in modern apps. The fact that I'm not skilled enough to find them reliably makes me even more cautious and concerned around apps like yours.

    It's not just about the app architecture, but also about you. When a known community figure creates an app, I have confidence that they will have a good security posture and architecture. With vibecoding... not so much.

    If you have an actual architectural critique

    Nice bait, but the problem is this: Just because you get people to audit "critique" your software, doesn't fix the root cause of those problems — you. Just because you manage to re-vibecode the app to not use JWT's or to fix any other number of issues someone would point out, doesn't actually mean more issues exist that that person missed. Like if someone specialized in python, then they might miss database issues, and so on. The second problem is that inevitably, you will expand this software, adding more features... and vulnerabilities. That is to say, even if you manage to fix the architecture and security now, you have not demonstrated the requisite skill needed in order to keep it fixed.

  • More new comments (see rest of my comments in this thread).

    Privacy.com finally verified me. So I guess I'm gonna use that. I don't think it's very good at being private, but I want virtual cards as more of an anti scam thing.

  • Okay I know people sort by new comments, so I'm just going to keep creating more comments here.

    I paused halocard for now, since it does look like it's paid. That makes me hesitate, but also gives me confidence (that its business model isn't glorping up all my data).

    I tried wise.com, which looks free, but it also asked for my SSN... which it then said it couldn't verify?

  • What if the new account user, who is working on a product that integrates with what the vast majority of selfhosters run, just found Lemmy?

    This happens on Reddit, and basically my problem is that these users often don't have enough experience to be able to actually give solutions. Reddit is full of people who think they have a good solution, dealing with comments of people explaining that what they are struggling with is actually a solved problem (or a skill issue). No one cares about your vibecoded slop that implements 1% of the features of an existing open source solution (they used to not be vibecoded but we still didn't care). It being paid and proprietary is just even more annoying.

    My idea of requirement to engage with the community is also about being able to ensure that the users are technically competent. If they are experienced, it will show up in the discussions we can see and review. For their benefit, if they lurk, then they can take a look at what is being used, and what problems actually exist, instead of making assumptions.

    If they really believe their product is so good, they can spend a few weeks helping people with Linux questions and sharing their (non product related) insightful thoughts on Lemmy so I don't dismiss them instantly when they finally advertise it.

  • It is possible to detect and moderate them, as long as your mods haven't been disappeared and replaced by people who's job is to accept bribes. And also when we can actually see people's history, since reddit now has an option to hide your history from others because of course.

    My usual method is to focus on content, rather than writing style. The AI bots can write a lot, or be brief, or whatever, but they don't actually contribute to the discussion. They just kinda paraphrase and restate what has been said, or when trying to sell a product they disagree and go "Are you sure this isn't an problem?" to everybody in the thread telling them that it's actually a skill issue.

    Sometimes they'll be a little better, but it's often surface level stuff that can be found at the top of a google search of keywords.

    This also makes it possible to tell the difference between ESL speakers who are using AI to clean up their writing style, and true bots. Since the ESL speakers will actually have something to say, but bots won't.

    And then: https://xkcd.com/810/

  • Unraid is an example, that I consider fairly reasonable. Sure, it is a subscription.

    But all of the services are docker containers. What unraid brings to the table is a nice management UI, and the ability to mix and match drive of different sizes in a single raid pool. It makes having a fairly resilient self hosting setup easier than trying to do all of this stuff from scratch.

    Nice features sure, that many people find worth paying for, even if I don't. But they are just nice to haves. If the company ever dies, it's absolutely possible to export the data and move to say, portainer, or docker via the cli, or podman, or anything that can run containers.

  • On reddit, there is a community called r/progressionfantasy, which is about a specific type of fantasy fiction. They have a rule that self promotional posts (for paid books) must be preceeded by 10 comments, and actual engagement with the community.

    This is a reasonable compromise, in my opinion. Known community member who has been answering questions and contributiting to discussions?

    I would be okay if they dropped a paid product of good quality and with a reasonable business model (please no vibecoded slop).

    But drive by ProductNameAccount users who have never posted on lemmy before a bunch of self promotional posts? Yeah ban that shit.

  • Privacy.com is, legally, a bank. Banks have always had aggressive KYC requirements, but it's only gotten worse in recent years.

    I went through the sign up and they made me take pictures of my face with Persona.

    Once I did that, I then declined to use this other platform, Plaid for storing my card. Instead I submitted my debit card information directly.

    The logged in page said that my account was pending, and would be verified in a 1-2 business days. It's been like 5 days now.

    I dug around on reddit, and found someone with a similar experience. They theorized that delayed, or even indefinite account "verification" is a way of soft punishing people who don't submit to every single privacy invasive thing.

    I really only wanted protection from fraud, overcharching, and bad merchants, so I wish this was a feature my bank would provide.

    EDIT: see other comment, Privacy.comm verified me.

  • only if it was so simple. you can set up routing restrictions between subnets on the IP level, but the switch will gladly forward all traffic anywhere inside of the VLAN, according to the destination MAC address. with that, a compromised system can confuse every other on the VLAN with ARP poisoning and faking DHCP servers.

    This is what private VLAN's fix. The switch isolates all traffic, forwarding it to the firewall instead, where the firewall can then monitor and control it. It's usually done with a combination of port isolation, where layer2 traffic within a subnet is essentially blocked, and proxying the arp requests. Nothing can communicate with each other directly at the Layer 2 level, only with the switch, which then replies to all ARP requests instead. Then the switch forwards the traffic that was supposed to go to that IP address through the firewall and back as Layer 3 traffic.

    with that, a compromised system can confuse every other on the VLAN with ARP poisoning and faking DHCP servers.

    This is what Private VlAN's fix. Any ARP requests a device attempts is simply blocked at the switch level via port isolation. Only the switch is able to communicate with attached devices unrestricted. It serves the DHCP, and assigns and IP address... and then if the device attached to the port attempts to lie about it's IP address or the like, the switch simply ignores it since it knows what ports are supposed to have what IP addresses (port security).

    This allows for much more granular isolation, but also a simpler architecture, since you can replace complex multi VLAN setups with fewer private VLAN's. Maybe even just a single private VLAN. I say VLAN's suck because by default, yeah they kinda suck. You pointed out the problems. I guess private VLAN's are a type of VLAN but they are a different thing, just like not having any VLAN's is really technically just one big VLAN.

    yeah, that’s the easier part. but one of the databases is mysql, which I want to get rid of completely. and conversion is nontrivial. probably dbveaver could handle it though.

    Is it a custom service? Or a service you are consuming from someone else? If the services supports mysql/maria/postgres, I would be worried that the adapter under the hood might be using different schema or something like that.

    It does look like dbeaver has a data transfer feature: https://dbeaver.com/docs/dbeaver/Data-transfer/#supported-formats

    Where you can transfer data across tables, across databases, and even across database types. There is also "Data export" mentioned on that page, where you can export data to json, or other non sql formats. If the schema match, maybe you could use that to transfer.

    If the services supports both mysql and postgres, you might be able to start by making a backup of the mysql database, loading that into a test database, and then setting up a clone of the service, but pointed at postgres instead. Then you could investigate the schema, or safely attempt data transfer from the mysql replica into the postgres database. Or mariadb, but mariadb is compatible with mysql (fork of it), so I am assuming you meant postgres which is different.

  • I use Vanilla music. It was the only music player I found that would keep my place in my long running playlist that I have on shuffle all the time. It gets through all the songs, shuffles, and then queues through all the songs again, reshuffled. Other players I tested would forget the place, or that music was playing in the first place, and that was frustrating.

    I stream it to my computer by connecting my phone to my computer via Bluetooth. I think it's was a new KDE feature, but now my Linux laptop will pretend to be a headset/speakers, and the Android phone will just play to it. It's so amazing. Because then I can listen to audio from both my phone and my computer at once pretty easily, and keep my spot in that one playlist I keep running. Unfortunately, it has an annoying issue where it drops out (but doesn't pause the audio) when the CPU is used too much. Lemmy post: https://programming.dev/post/45725312

    When I want a more reliable setup, like when I am compiling things, I usually plug my phone into my computer and use srcpy. This can stream the android screen to the computer over ADB, but I just stream the audio, since that's all I care about.

  • weren’t they having access through peertube? you can’t revoke access to something that needs it.

    The peertube database did not have the vulnerable extension enabled. They got access but connecting to another database:

    We did not have pgcrypto installed in the peertube database, but I overlooked that someone could connect to the main postgres database if they say had a nodejs plugin running.

    From that database they escaped. So if they only had access to the peertube database, that path would have been cut off for the attackers.

    also at that point, the question arises why not just run everything in qubes OS, each service in its own VM and its own VLAN.

    VLAN's suck. They allow for traffic to travel within each VLAN them, unmonitored and unrestricted. Sometimes red teamers call that "hard outside, soft inside, like an eggshell".

    Better, is a private VLAN. Private VLAN's enable the firewall to monitor or block all traffic within them. For many usecases, a single private VLAN can replace the complex, many VLAN setups that people spend so much effort setting up. You just block everything within itself from communicating with eachother, and then you can explicitly allow the stuff that actually needs to talk.

    Often, there is no reason to allow devices with a VLAN to communicate with eachother. And even if you are allowing intra-pvlan communication within a private VLAN, you can now monitor the traffic, which you can't do with a regular VLAN.

    Qubes OS

    Yeah. That's basically what virtual machine or application kernel based runtimes are doing. The trick is that they are designed for this usecase, with the goal of making the isolation as cheap and performant as possible. Qubes runs full Linux VM's since it is designed for a desktop isolation usecase.

    Anyway. It's a matter of threat model and effort. I like application containers/vm container runtimes due to how simple and easy they are to run, and the clear security benefits they provide. Install in < 30 min, configure the container runtime, restart your containers, done. Switching from a regular Linux desktop to Qubes is not as simple, so it's harder for me to recommend that, and it becomes a matter of threat model.

    It's also common to separate services out in different Proxmox VM's, which offers isolation benefits akin to Qubes.

    I run 3 separate database servers on the same OS because I made a bad decision at one point, and I regret it. I just don’t have time to merge them.

    Congrats on the security isolation!

    In all seriousness, you should be able to migrate them into the same database by dumping the database with pg_dump or a similar utility, and then loading them up using pg_restore. Other databases have equivalent tools. I used the Dbeaver open source database GUI to do this a few days ago.

  • Unfortunately, there isn't really a good solution for remote controlling android or ios devices. Meshcentral can view, but not act. Also, the user must initiate the connection from their end.

    I was investigating this (for android tablets), and the solution I came too was to enable android debug tools (adb) over wireless (but in this case, remotely), vpn the phone into a remote server to connect them. Then, you should be able to run adb commands remotely (which lets you uninstall apps). And then over adb, you should be able to stream the screen and control it via genscrcpy.

    Actually, the first solution I was going to use was device farmer: https://github.com/orgs/DeviceFarmer/repositories , but the above is basically how device farmer works.

    I eventually gave up on remote controllung android devices because it wasn't needed and it would have been a complex deployment.

    A simpler solution for your usecase is probably to spend a night cleaning up her phone, and then enable kiddie mode on it. That would disable app installs unless she calls you to approve it. In addition to that, (idk about ios), but you can actually install apps on android devices remotely via the google play website.

  • It has installed suspicious certificates.

    I dug into this, and it looks like it has been fixed: https://github.com/rustdesk/rustdesk/discussions/6444#discussioncomment-12039260 , and no longer does that.

    So Rustdesk can be used entirely open source (since the proprietary management web UI is not critical), and it no longer installs certs.

    So maybe it had problems a while ago, but it looks clean in these regards now.

  • Lmao stop spreading more FUD. They have a paid, proprietary web UI to make management and administration easy. But you can get all the critical components needed to actually run the software from the source.