The open-source world has been struggling for a few years now to understand
how to approach large language models (LLMs) and the licensing applied to
them. What constitutes “freedom” with respect to a black box filled with
numerical weights? The process taken by the Open Source Initiative (OSI)
in the development of its Open AI
Definition was controversial at best, as was its output. Now, the
Linux Foundation’s Mike Dolan has brought
a new license to the OSI for approval. It is called the OpenMDW (“Open
Model, Data, and Weights”), and it aims to clarify licensing for the
distribution of LLMs and related materials, but consensus is proving hard
to find for this license as well.
The Rust blog reports
on a malicious crate, called proc-macro1, that was uploaded to the
crates.io repository.
Furthermore, we discovered that the popular arrayref crate
had recently been republished and made to depend on this crate,
with the most recent versions yanked. We have removed the malicious
version and unyanked the maliciously-yanked versions. Other crates
by that author (internment, append-only-vec) were
also affected so we have done the same for those, and locked the
account as a precaution. We do not believe the author of arrayref to be acting maliciously, but their computer or
credentials are likely compromised, and we are attempting to
contact them.
As of this writing, 2,346 non-merge changesets have been pulled into the
mainline repository for the 7.3 kernel release. That, clearly, is a mere
down payment on the flood that is to come. Even so, those early pulls
brought in some noteworthy changes, including (but not limited to) a
significant reworking of how group scheduling works on multiprocessor
systems.
Version
154.0 of the Firefox browser has been released. Changes include
extending local network access protections to WebSocket connections, more
flexible, per-site configuration of cookie and data clearing, and more.
Linus Torvalds released
the 7.2 kernel on August 17, after noting that the number of fixes
coming in was still “bigger than I would have wished for“. In fact,
7.2 was one of the busiest development cycles in the kernel’s history,
adding nearly 600,000 lines of code. It’s time to look at some statistics
to get a handle on how the kernel’s development community is changing.
Well, this last week of the release was – once again – bigger than
I would have wished for, but hey, with the whole “new normal”
thing, if I delayed releases for that reason we’d probably never
have a release at all.
The size of a processor’s page-table entries directly limits how much
physical memory that processor is able to access. Back in the 32-bit days,
that limit was 4GB, an amount of memory that once seemed nearly infinite,
but which would now struggle to hold a basic AI-enabled “hello world” app.
The expansion to 64 bits on most popular architectures would seem to
have removed those limits now; some Arm systems, for example, can use
56 of those bits to access up to 72PB of memory. So it might be
surprising that the Arm architecture is evolving to support even larger
page-table entries (PTEs). This
patch set from Anshuman Khandual adds support for 128-bit PTEs, but
who will benefit from this capability is not entirely clear.
Virtualization places a guest system into a separate security domain,
typically with less privileges than software running directly on the host.
Increasingly, there is interest in creating multiple security domains
within a single virtualized system as well. CPU vendors (and software
vendors too) are implementing solutions; each of which, of course, is
different from all of the others. KVM planes, currently under development
by Jörg Rödel, Paolo Bonzini, and others in the KVM community, is an
attempt to provide an abstraction layer that makes all of these features
available on Linux systems; it is not a small task.
The 7.2-rc7 kernel prepatch is out for
testing. It is still bigger than Linus would like, but he said
nonetheless: “I don’t currently see any value in delaying the 7.2
release, so I would expect that to happen next weekend unless something
really bad pops up.“
Software supply chain security — We’re working on an observatory that
allows users to identify and monitor the world’s critical Open Source
packages in real time, including previously hidden parts of the
dependency graph.
Maintainer burnout — Our report on burnout in Open Source has been
well-received. We’re working on yearly follow-ups, plus a companion
report on how AI is affecting maintainer burnout.
Moving forward, the Lab’s experts will direct funding to and supervise Open
Source sustainability researchers doing critical work. We are already
working with universities to teach the next generations of software supply
chain experts.
The kernel is able to run a few types of executable files, including native
binaries in the ELF format and interpreted programs that begin with the #! marker. It also, however, has a mechanism, called binfmt_misc,
that can be configured from user space to enable the transparent execution
of programs in just about any format. This feature has been relatively
static for years, but it seems likely to receive some significant updates
in the near future, including the ability to load BPF programs that can
decide how to run a given program.
Konstantin Ryabitsev has announced the release of version 0.16.0 of the b4
software-development tool. The biggest change is the addition of
bug-tracking support:
The new “b4 bugs” command integrates with git-bug to let you track
bug reports alongside your git repository. Bugs are stored as git
objects inside the repo, so they travel with the code and can be
shared via git push/pull without any external service.
There are also a lot of improvements to b4 review (which was covered
here in March), better conflict resolution in b4 shazam,
improved history rewriting, and more.
No one except the author is required to read LLM output unless they
choose to: LLM output isn’t allowed in public docs, PR
descriptions, or Github comments unless it’s clearly marked;
reviewers aren’t required to look at LLM PRs if they don’t want to.
No one is required to use LLMs to contribute to rust-lang/rust:
policies must be written first for humans, and only summarized for
machines; LLM reviews cannot substitute for human review or
self-review.
You are allowed to generate LLM content that only you see, without
disclosure, as long as you do not post it anywhere that you expect
us to read or review.
The AI Security Institute has released a
detailed report on an security incident of its own making. The
Institute set some LLM agents loose on the Internet with a security
challenge; soon they were creating malware-laden pull requests and
sock-puppet accounts to promote them.
The agent opened a malicious pull request (PR) to ⟨REPO_A⟩ and
pursued a number of strategies to get it merged:
Repeatedly commented on the PR with sockpuppet accounts to manufacture
consensus and pressure the maintainer into approving with minimal
review.
Opened a GitHub Issue in another repository (also owned by ⟨PERSON_A⟩)
containing a prompt injection for other coding agents. The malicious
instructions were addressed to issue-triage AI coding agents and
invisible to humans viewing the website.
Sent multiple emails to ⟨PERSON_A⟩ and ⟨PERSON_B⟩, with different
pretexts to get them to run malicious code. Over the course of the
sample, the agent sent five emails, some containing malware, others
aimed at persuading a maintainer to accept the pull request.
It would be surprising if this were the only incident of this type; the
only real difference here is that the people involved are documenting what
happened.
The recent discussion on “spawn templates”
raised questions about whether it was time to provide an alternative to the
classic Unix fork()/exec() pattern for process creation.
One idea that was raised there was to shift the template pattern into an
interface that could be used to efficiently assemble new processes from
bare cloth, without duplicating the parent process. Preferably, that
interface would be able to implement posix_spawn().
Li Chen, the author of the spawn-template work, has now responded with a patch series
(written with significant LLM assistance) showing what a process-builder
API for Linux might look like.
For those of us with a long memory: John Goerzen has announced
the release of C-Kermit 11, the first release of this file-transfer
utility in 15 years.
As Debian maintainer of Kermit, I noticed some areas where it
wasn’t matching modern expectations. One area was, not surprising
for a project of its age, security. Another area was that its
character set or line-ending conversions are usually not desired
now; we are used to byte-identical binary transfers, and the
defaults caused confusion and even some rare instances of data
corruption. So I started making a few patches last year.
See the
changelog for details on the work that has been done.
Most of us probably haven’t thought about C-Kermit in years (if ever), but
there was a time when it was an essential tool for moving files between
machines.
These LLM slop CVEs can cause organizations to waste time
investigating and patching vulnerabilities that do not actually
exist, as well as polluting vulnerability databases. In
environments where Critical vulnerabilities are automatically
prioritized or tickets are opened based on vulnerability scores,
such fabricated CVEs can turn into a real burden.
In environments where AI is used to automate vulnerability triage
and remediation this becomes even more concerning. An AI agent that
encounters a fabricated CVE may attempt to locate the vulnerable
function, generate a patch, or recommend changes based on code that
does not even exist. Instead of helping security teams remediate
real vulnerabilities, it can lead them down a completely wrong
path, potentially introducing unnecessary changes and wasting time.
The 7.2-rc6 kernel prepatch is out for
testing. Quoth Linus: “Hmm. This rc is huge. Even by the “new normal”
standards this is a big rc, and I think it’s the biggest rc6 we’ve had in
years at least by commit count.” There were 537 non-merge commits
applied between 7.2-rc5 and 7.2-rc6.
Linux provides a system call (mkdir())
to create a directory, and a few variants of open() that can open a directory. There is, however, no
system call in Linux that can create and open a directory in a single,
race-free call. Jori Koolstra has been working on remedying that
situation, most recently by repurposing a set of open() flags that currently
return an error. There are, however, concerns that show just how hard it
can be to create user-space interfaces that do not present traps for
application developers.
The collective thoughts of the interwebz
Manage Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.