Cat9 And LASH Want To Change Your Linux Command Line

It is no secret that to be a true Linux power user you have to deal with the command line. Many people actually prefer to use the command line. However, the shell — the program that provides that command line — is mired in a back history which means it has to work with existing things no matter how modern it tries to be. However, a new set of projects wants to replace most of your user interface stack starting with the shell. At the top of that stack is Cat9 which is technically a shell, but not in the way you probably imagine a shell.

A traditional shell lets you run programs one at a time, feed them input, and observe their output. Sure, you can stash the output away for later use. You can run programs in the background or in parallel, but that requires special attention. In Cat9, everything is asynchronous and results stay around until you deliberately drop them. It is trivial to grab data from a previous command or, for example, to switch to a directory that was in use by an earlier task.

Continue reading “Cat9 And LASH Want To Change Your Linux Command Line”

This Week In Security: Linux WiFi, Fortinet, Text4Shell, And Predictable GUIDs

Up first this week is a quintet of vulnerabilities in the Linux kernel’s wireless code. It started with [Soenke Huster] from TU Darmstadt, who found a buffer overwrite in mac80211 code. The private disclosure to SUSE kernel engineers led to a security once-over of this wireless framework in the kernel, and some other nasty bugs were found. A couple result in Denial-of-Service (DOS), but CVE-2022-41674, CVE-2022-42719, and CVE-2022-42720 are Remote Code Execution vulnerabilities. The unfortunate bit is that these vulnerabilities are triggered on processing beacon frames — the wireless packets that announce the presence of a wireless network. A machine doesn’t have to be connected or trying to connect to a network, but simply scanning for networks can lead to compromise.

The flaws were announced on the 13th, and were officially fixed in the mainline kernel on the 15th. Many distros shipped updates on the 14th, so the turnaround was quite quick on this one. The flaws were all memory-management problems, which has prompted a few calls for the newly-merged Rust framework to get some real-world use sooner rather than later.

Fortinet

Much of Fortinet’s lineup, most notable their Fortigate firewalls, has a pre-auth authentication bypass on the administrative HTTP/S interface. Or plainly, if you can get to the login page, you can break in without a password. That’s bad, but at this point, you *really* shouldn’t have any administrative interfaces world-accessible on any hardware. Updated firmware is available.

More than just a couple days have passed, so we have some idea of the root problem and how it was fixed. It’s a simple one — the Forwarded HTTP headers on an incoming request are unintentionally trusted. So just send a request with Forwarded:for and Forwarded:by set to 127.0.0.1, and it falls through into code logic intended for internal API calls. Add a trusted SSH key, and pop, you’re in. Whoops. Continue reading “This Week In Security: Linux WiFi, Fortinet, Text4Shell, And Predictable GUIDs”

Linux Fu: Atomic Power

People are well aware of the power of virtual machines. If you want to do something dangerous — say, hack on the kernel — you can create a virtual machine, snapshot it, screw it up a few times, restore it, and your main computer never misses a beat. But sometimes you need just a little shift in perspective, not an entire make belive computer. For example, you are building a new boot disk and you want to pretend it is the real boot disk and make some updates. For that there is chroot, a Linux command that lets you temporarily open processes that think the root of the filesystem is in a different place than the real root. The problem is, it is hard to manage a bunch of chroot environments which is why they created Atoms.

The system works with several common distributions and you install it via Flatpak. That means you can launch, for example, a shell that thinks it is running Gentoo or Centos Linux under Ubuntu.

Continue reading “Linux Fu: Atomic Power”

ADSL Router As Effects Pedal

Moore’s law might not be as immutable as we once though thought it was, as chip makers struggle to fit more and more transistors on a given area of silicon. But over the past few decades it’s been surprisingly consistent, with a lot of knock-on effects. As computers get faster, everything else related to them gets faster as well, and the junk drawer tends to fill quickly with various computer peripherals and parts that might be working fine, but just can’t keep up the pace. [Bonsembiante] had an old ADSL router that was well obsolete as a result of these changing times, but instead of tossing it, he turned it into a guitar effects pedal.

The principle behind this build is that the router is essentially a Linux machine, complete with ALSA support. Of course this means flashing a custom firmware which is not the most straightforward task, but once the sound support was added to the device, it was able to interface with a USB sound card. An additional C++ program was created which handles the actual audio received from the guitar and sound card. For this demo, [Bonsembiante] programmed a ring buffer and feeds it back into the output to achieve an echo effect, but presumably any effect or a number of effects could be programmed.

For anyone looking for the source code for the signal processing that the router is now performing, it is listed on a separate GitHub page. If you don’t have this specific model of router laying around in your parts bin, though, there are much more readily-available Linux machines that can get this job done instead.

Continue reading “ADSL Router As Effects Pedal”

Linux Fu: Eavesdropping On Serial

In the old days, if you wanted to snoop on a piece of serial gear, you probably had a serial monitor or, perhaps, an attachment for your scope or logic analyzer. Today, you can get cheap logic analyzers that can do the job, but what if you want a software-only solution? Recently, I needed to do a little debugging on a USB serial port and, of course, there isn’t really anywhere to easily tie in a monitor or a logic analyzer. So I started looking for an alternate solution.

If you recall, in a previous Linux Fu we talked about pseudoterminals which look like serial ports but actually talk to a piece of software. That might make you think: why not put a piece of monitor software between the serial port and a pty? Why not, indeed? That’s such a good idea that it has already been done. When it works, it works well. The only issue is, of course, that it doesn’t always work.

Continue reading “Linux Fu: Eavesdropping On Serial”

Compare PDFs Visually

Sometimes a problem seems hard, but the right insight can make it easy. If you were asked to write a program to compare two PDF files and show the differences, how hard do you think that would be? If you are [serhack], you’ll make it much easier than you might guess.

Of course, sometimes making something simple depends on making simplifying assumptions. If you are expecting a “diff-like” utility that shows insertion and deletions, that’s not what’s going on here. Instead, you’ll see an image of the PDF with changes highlighted with a red box. This is easy because the program uses available utilities to render the PDFs as images and then simply compares pixels in the resulting images, drawing red boxes over the parts that don’t match.

Continue reading “Compare PDFs Visually”

Converting An 80s Typewriter Into A Linux Terminal

Typewriters may be long past their heyday, but just because PCs, word processor software, and cheap printers have made them largely obsolete doesn’t mean the world is better off without them. Using a typewriter is a rich sensory experience, from the feel of the keys under your fingers that even the clickiest of PC keyboards can’t compare with, to the weirdly universal sound of the type hitting paper.

So if life hands you a typewriter, why not put it back to work? That’s exactly what [Artillect] did by converting an 80s typewriter into a Linux terminal. The typewriter is a Brother AX-25, one of those electronic typewriters that predated word processing software and had a daisy wheel printhead, a small LCD display, and a whopping 8k of memory for editing documents. [Artillect] started his build by figuring out which keys mapped to which characters in the typewriter’s 8×11 matrix, and then turning an Arduino and two multiplexers loose on the driving the print head. The typewriter’s keyboard is yet used for input, as the project is still very much in the prototyping phase, so a Raspberry Pi acts as a serial monitor between the typewriter and a laptop. The video below has a good overview of the wiring and the software, and shows the typewriter banging out Linux command line output.

For now, [Artillect]’s typewriter acts basically like an old-school teletype. There’s plenty of room to take this further; we’d love to see this turned into a cyberdeck complete with a built-in printer, for instance. But even just as a proof of concept, this is pretty great, and you can be sure we’ll be trolling the thrift stores and yard sales looking for old typewriters.

Continue reading “Converting An 80s Typewriter Into A Linux Terminal”