I find interesting that GNOME Screensaver's security depends on it to not crash.<p>Meanwhile, in KDE the lock screen is managed by KDE Session Management Server which ensures that lock screen cannot be bypassed by simply crashing its process.<p>The way it works is follows: ksmserver draws a black rectangle over everything and spawns kscreenlocker. If kscreenlocker crashes, the black rectangle is still here, and ksmserver will spawn kscreenlocker again but this time with software rendering (just in case it crashed due to graphics driver issue). If kscreenlocker crashes four times then KDE Session Management Server gives up, stops respawning kscreenlocker and simply draws the following text on the screen.<p><pre><code> The screen locker is broken and unlocking is not possible anymore.
In order to unlock switch to a virtual terminal (e.g. Ctrl+Alt+F2),
log in and execute the command:
loginctl unlock-session %1
Afterwards switch back to the running session (Ctrl+Alt+F%2).
</code></pre>
If ksmserver itself crashes then the entire session closes.<p>I'm not sure why GNOME screensaver cannot do something like this. Lock screen crashing seems like something inevitable (especially considering buggy graphic card drivers and so on), and it makes sense to prepare for it so that crashes won't bypass the screen locker.
Does anyone know why lockscreens in Linux have been such a joke? I remember trying Ubuntu couple years ago and when waking up my laptop it would show me my entire desktop with all the information displayed right there in the open for about 10-20 seconds before suddenly engaging the lockscreen. All you had to do was close the lid and open it again and you could just copy whatever was on the screen before the lock screen appeared. I guess it's because the lockscreen was a separate process that had to start up? Still, what an awful awful design.
Years ago I taught a high school typing class in a K-12 school. The school didn't have the funds to get a commercial typing program so I wrote my own typing program. It evolved over time with features to help me track the students' progress etc. One day we had a school open house where all the parents could come to school. We had a bunch of different activities set up in different classrooms and I ended up getting assigned to the 3rd grade classroom to set up my typing program so anyone coming through could test their typing speed. It was a DOS program and I didn't want people using anything other than my typing program, so I modified it so you couldn't quit the typing program. Over the course of the day the 3rd graders were hanging out in their homeroom not really doing anything productive. Of course the computer was a novel attraction and they were just smashing keys and exploring my program's UI. Eventually at one point I noticed that they had somehow crashed my program with a segfault in what had otherwise become a pretty stable piece of software. To this day I have absolutely no idea what the bug was.
Mi kid got around the lock screen of my mac. Twice.<p>It was 4-5 years ago when he was about 2. I had a 15+ character random password (a generated one including symbols etc) so the chances of him being lucky were rather slim. He was just mashing button on the lock screen for less than a minute when boom, I was suddenly signed in. The first time I thought it was a fluke. Then it happened again after a couple of months. After that I took my phone, sat him behind my computer and started to record him playing with the buttons but it never happened again and my hopes of getting a bug bounty from Apple vanished :(
Step 1: Gather timings of key presses from a lot of kids.<p>2: Use ML to learn how to simulate it.<p>3: Sell it as a service, labeling it KaaS.<p>4: Profit, then go to jail because of a misunderstanding.<p>But seriously, is there such a tool to automate this?
Margaret Hamilton's daughter Lauren still takes the first place for "kid fuzzing" the AGC IMO <a href="https://wehackthemoon.com/people/margaret-hamilton-her-daughters-simulation" rel="nofollow">https://wehackthemoon.com/people/margaret-hamilton-her-daugh...</a><p>But this is pretty impressive as well!
For everyone linking the JWZ "I Told You So" post, the devs are aware of it and posted a response in the GitHub issue. I encourage everyone to read their side of the issue: <a href="https://github.com/linuxmint/cinnamon-screensaver/issues/354#issuecomment-762261555" rel="nofollow">https://github.com/linuxmint/cinnamon-screensaver/issues/354...</a>
Physlock works comparatively well, but nothing can stop the omniscient stupidity of, eg ctrl-alt-del 10x (or similar) invoking reboot, which I've found no method of preventing. The general attitude encountered when seeking a solution to this madness is "if someone has physical access, you're pwned anyway", which is also supremely unimaginative and omnisciently stupid. This has gnawed at my cranial portions for years, and I now speak forth in due fury.<p><a href="https://linuxcommandlibrary.com/man/physlock" rel="nofollow">https://linuxcommandlibrary.com/man/physlock</a>
In middle school long ago, I was using one of the library search computers. They ran Windows XP and were locked down to the point where you couldn't open anything except the software that was running and you had no access to the desktop. One day I was rapidly mashing the "Search" button in the native book-searching software they were using - for no reason at all - and it suddenly opened an Explorer window out of nowhere showing everything in the filesystem. I could reproduce it easily with rapid-enough clicks. I still have no idea why that happened.
My own anecdote:<p>My daughter was 1ish at the time, and I sat her down while I grabbed something from the fridge. Windows 98, locked.
When I came back the screensaver was on, the password dialog was still up, <i>but the desktop was fully functional in front of it</i>. I could navigate, open applications, and everything else.<p>Still no idea how she did it, but that’s not the first or last time she surprised me :)
This reminds me of when I was about 14. I had a Tamagotchi which I had for a record amount of time. My niece, about 2 at the time wanted to see it so let her hold it. Within 1/2 a second, she squeezed both buttons at the same time and crashed it.<p>My daughter managed to buy 24 hours of football pass with NowTV by pressing the same button repeatedly on the remote within about 5 seconds.<p>So a crash like this doesn't surprise me.
For anyone interested there is something called fuzzing that uses <i>usually</i> code coverage based heuristics to generate data to find bugs.<p>For example LLVM's lib fuzzer uses instrumentation to track code coverage and mutates data to find invalid behaviour.<p><a href="https://llvm.org/docs/LibFuzzer.html" rel="nofollow">https://llvm.org/docs/LibFuzzer.html</a><p>It uses a compiler pass to insert code to branch points functions calls etc.
I think it uses genetic algorithms to increase coverage by changing the data.<p>There are others that work in similar ways one of them is.
<a href="https://github.com/google/AFL" rel="nofollow">https://github.com/google/AFL</a>
Another tangentially linked anecdote. We had build artefacts stored on a Samba shared drive, that were write protected, since some people regularly used to move them instead of copying them. Then one day, the latest build was gone again. We asked around to see whether someone had purposefully removed the build, but no. Turns out someone on Windows 10 had tried to cut and paste the file, but his computer had crashed before pasting. Apparently the permissions were only checked on paste, but the file was unlinked on cut?
Something about this exchange was extremely pleasing and calming to read, maybe I'm irony poisoned from overly loud social media. But this was so nice to read through.
Unless there's something unbelievably wacky going on, this is why people use formal verification.<p>If you can describe your program as a state machine, you can ask an SMT solver to find any transitions that break stuff. Unfortunately it's a lot harder to do for software than hardware because of the plasticity people expect from the former, but works it was it's really nice.
Keep in mind that screensavers aren't the only untested dumpster fire on Linux Desktops (or ~ distributions in general).<p>The whole desktop architecture is out of date. I wouldn't be surprised if someone argued that screensavers aren't important because it's just your user data exposed, the root account is still safe!
I enjoy to see my kid breaking software, POS terminals and causing ATMs to throw error windows. Nothing critical, just funny how random screen touching and keyboard mashing drives “serious” software crazy.<p>Fool-proof and child-proof software is yet to come.<p>Hire QA kids.
Hilarious, esp. if you have kids.<p>I see similar behavior with smartphones.<p>3 y.o. figure it out better than my parents because it seems their mindset is ‘do all the things’ to see what the i/o structure is. Their brain is built that way when they are so young.
Not really the same, but I had fun back in high school. Finding the Novell messaging utility that let me send a message to (IIRC) anyone in the school board currently logged in, though not anonymously.<p>Using some a couple lines of VBScript to change a couple registry entries (computers didn't persist storage anyways) you could also give your local admin privileges, to install stuff. That one got me in a touch of trouble, and I lost my account for a couple weeks while they "looked at my files", because I stored it on my network drive folder.
Linux Mint, and whatever it's built on, has been disappointing to me. The most worrying thing I've experienced is that, when waking up from sleep, the unlocked screen will sometimes flash before showing the lockscreen. That is a huge no-no and really betrays the fallibility of whatever security measures are employed.
I remember finding a very similar issue with XDM on a Sun 3/60 back in about 1992. Just mash the keyboard while in the 'password' field and it would eventually drop a root shell. Oops!
I worked at a finance co pa y in the early 00s.<p>The QA team had a test they called “the elbow test” where they did exactly this.<p>Just kind of put their elbow randomly on the keyboard to see if stuff would break.
The first computer I ever bricked was a my father's work laptop running Windows 95. I was a toddler and wanted to press the buttons. Good to see the kids are still at it!
That reminded me of the Linux GRUB2 bug where you could press Backspace key 28 times and bypass all security. [1]<p>><i>The source of the vulnerability is nothing but an integer underflow fault that was introduced with single commit in Grub version 1.98 (December 2009) – b391bdb2f2c5ccf29da66cecdbfb7566656a704d – affecting the grub_password_get() function.</i><p>[1] <a href="https://thehackernews.com/2015/12/hack-linux-grub-password.html" rel="nofollow">https://thehackernews.com/2015/12/hack-linux-grub-password.h...</a>
I once had cat walk over my keybord and do hard reset on windows 95 in about 1 second.<p>No dialogs or confirmations. Just black screen and computer rebooting.
Well, the original definition of the word "hacking".
Hacking on keyboard to exploit keypress timings, key combinations and key buffer overflows.