|
|
Subscribe / Log in / New account

LWN.net Weekly Edition for December 24, 2015

The grumpy editor's 2015 retrospective

By Jonathan Corbet
December 23, 2015
Welcome to the final LWN.net weekly edition for 2015. As is always the case, it has been a busy year for the free-software community. It has also been a busy year for LWN; among other things, we posted 476 feature articles (57 from outside authors) and reported from no less than 31 conferences. Most readers noticed — and many complained about — the site's new look; that work remains unfinished as we still intend to address some of the issues that have been raised. Happily, few of you noticed the retirement of our eight-year-old production server for something newer, faster, and cloudier. All told, it has been a successful year but we're ready for a brief rest.

First, though, there is an important ritual to work through: the review and mocking of your editor's predictions from last January. As usual, some of them came off better than others.

Yes, we heard a lot about the Internet of things, as expected, including many of the unpleasant behaviors that connected things might be expected to show. The (fortunately) short-lived decision by Philips to refuse to interoperate with competing "smart" light bulbs is a case in point; the ongoing revelations of emissions-test cheating in Volkswagen automobiles is a rather more sobering one. The prediction didn't talk about antifeatures, though; instead it focused on size and resource usage. The size constraints that come with connected devices did show themselves and had an influence on kernel development, but we have not, yet, seen the emergence of a credible competitor for Linux on extremely small systems.

Did the OpenStack hype fade as predicted? Hard to say; one still hears a lot about it. Cloud computing as a whole is clearly still on the rise, with many projects and companies trying to own pieces of it.

Your editor declares full accuracy for his prediction that the systemd wars would wind down. For the most part, that particular fight is done and most people are getting on with their lives. Projects like Devuan continue to host mailing lists that serve as hotbeds of snide commentary on systemd and the parentage of its creators, but they have failed, so far, to produce an interesting systemd-free alternative. Meanwhile, the prediction that there would continue to be disagreements about the design of the Linux system in general was so obvious that it better have come true.

Your editor predicted more Heartbleed-level security incidents. In truth, the year may not have been as bad as 2014 with regard to high-profile vulnerabilities, but, even so, names like GHOST, Moose, Logjam, and Stagefright became familiar over the course of the year. The flow of vulnerabilities continues and seems unlikely to slow anytime soon. The related prediction of a slow growth in investment in security seems to have been borne out; we are starting to see efforts like the Core Infrastructure Initiative funding work on some of our higher-profile problems, and some companies are beginning to contribute developers to the task of making our code more secure. But it is just a beginning and, according to some viewpoints anyway, a thoroughly inadequate one.

One might be forgiven for saying that, contrary to prediction, not much happened on the year-2038 front. But, behind the scenes, quite a bit of work is happening (1, 2) to fix year-2038-related problems in various parts of the system and define how the user-space transition is going to work. The other long-horizon projects mentioned did indeed gain some traction; Btrfs is coming into wider use, some distributions are starting to seriously consider a Wayland transition, etc. Some of these projects can take a long time to reach fruition, but they get there eventually.

Your editor predicted that we would see more distributions that are specialized for specific applications. The existing distributions of this type (think of OpenWrt, the network-attached storage distributions, and even distributions like Android or Ubuntu Touch) mostly seem to be going strong, but they do not have a lot of new competition.

Finally, as predicted, civility remains an issue in our community. There has even been some vocal disagreement over the standards of discussion here at LWN. On the wider stage, Linus Torvalds duly produced one of his famous tantrums, reinforcing the kernel community's exaggerated reputation for unfriendliness. On the other side, there has been some pushback from certain quarters against those campaigning for greater civility and inclusiveness in our community. We are far from a consensus on what standards should apply to our interactions with each other.

Then, there are the things your editor should have predicted, but didn't. It's harder to come up with a definitive list of those, of course, but a few things stand out.

2014 saw a new class of security vulnerability; they now come with catchy names, logos, and "security companies" in their trail trying to make money from them. In such an environment, it is natural that we will see a series of overhyped vulnerabilities pushed by people who want to own the next Shellshock. The GHOST vulnerability is an example, as are the headlines circulating as this article is written saying that "any Linux system can be compromised by hitting the backspace key." There are some severe vulnerabilities out there, but people calling a problem severe do not necessarily make it so.

Your editor didn't predict that kdbus would be merged — an outcome that seemed fairly clear given the developers who were behind it. It's just as well, since such a prediction would have been wrong. The decision to back off and rethink the design was a bit of a surprise to some, but it seems like the right one. There should be place for a proper messaging system in the kernel, but it needs to be the right one.

Another unpredicted event was the filing of the VMware GPL-infringement suit. That particular one might have been hard to foresee but, given the increasing level of frustration over GPL violations, it was inevitable that something would be filed one of these years.

A few years back, your editor predicted that the OpenOffice project, newly shifted over to the Apache Software Foundation, would fade away. That was accounted as an incorrect prediction at the end of the year, but it now seems that the real failure was just in the timing. In 2015 it became clear that OpenOffice has nearly lost the ability to move forward, or to even put out releases fixing security issues. The project did finally get a small release out late in the year; it's not at all clear when the next one might happen.

The decision to rebase the openSUSE distribution onto a SUSE Linux Enterprise came as a surprise to your editor. One can argue that something like that should have been evident, given the resources required to keep openSUSE going. But, in the end, openSUSE Leap is an interesting new idea for how a community-oriented distribution can evolve in symbiosis with a supported "enterprise" distribution.

The end of the Ada Initiative was also unforeseen though, again, one might argue that the signs had been there for a while. It seems that there should still be a place in our community for a group trying to increase inclusivity and the diversity of our developer base, but evidently it needs to be a different group.

To close: 2015 was, for the Linux and free software community, a fairly normal year. We have had our ups and downs, but, as a whole, progress toward world domination appears to be mostly on track. Here at LWN, we are proud to have been a small part of it. As we head into the year-end festivities, we wish the best for all of our readers. Thank you for supporting us through our 18th (!) year of operation.

Comments (13 posted)

Warsow 2.0: An arena-style first-person shooter game

December 23, 2015

This article was contributed by Adam Saunders

Running around with lots of guns in cramped quarters has served as a sufficient backdrop for many video games. That's also the premise of "Warsow", an almost entirely open-source first-person shooter (FPS). Where Warsow differs from its competitors is its focus on constant mobility and jumping, leading to a frenetic game where fast reflexes and sharp instincts prevail. Warsow's recent 2.0 release, which comes with a number of improvements, including a tutorial, major graphical enhancements, and changes to weapon power for game balance purposes, makes for a good time to look at how the game has progressed to date.

Warsow's origins lie in "Chasseur de bots" (Hunter of bots), a story (written in French) about the battles of a video game player in a chaotic FPS. The original Chasseur de bots website is no longer available, and only an excerpt from the original story can be found online. Fabrice Demurger, who wrote the Chasseur story, began working on Warsow with the help of a few fellow developers in 2004, lifting the cyberpunk setting and frantic action from the story. Playable characters include punks with dyed hair and pigmen (humanoids with pig heads). Many of the game maps are futuristic, imagining a high-tech industrial world. That technology is embodied in the game's weapons, which include fanciful concepts like laser guns as well as creative takes on familiar armaments like shotguns and grenade launchers.

[Lasergun]

A public 0.1 alpha was released in 2006. In the years to come, Demurger's activity within the project waned, but some of the early developers have stayed on. The project achieved some remarkable successes, including recognition among major online video game leagues as a competitive electronic sport and reviews on television shows. It continues to have a small but dedicated base of players; its timeless gameplay (shoot people before they shoot you) hasn't dulled with age.

Those looking for a single-player story-driven campaign akin to the Half-Life series of FPSes will need to search elsewhere. Warsow is entirely about fast-paced arena fighting, largely in one-on-one duels or in team deathmatches. Players familiar with the famous, multiplayer-oriented Quake series will be right at home.

Success in Warsow doesn't boil down solely to one's aim, but also to how one moves. There are multiple jumping tricks a player needs to take advantage of to win. Some boost speed (such as through strafe-jumping, which is jumping while running sideways), while others allow quick repositioning in a fight (such as via wall-jumping). This need to constantly be mobile can be rather daunting to new players. Fortunately, the 2.0 version comes with an optional tutorial that teaches how best to hop around these arenas.

After downloading the game and running it, the player is prompted to register an account on warsow.gg. This is needed to save statistics (such as accuracy with weapons) and match results. While this is a nice feature, clicking on the prompt takes the player out of the game and into a web browser to fill in account details. Then they have to open their email to click on a confirmation link. It would be a smoother initial experience if a player could register for an account without having to leave the game environment at all.

[Server selection]

The small number of players online at any given time harms the overall experience of what is otherwise an impressive, polished game. Most of the time, there's only a handful of active servers to join, some of them with less-than-forgiving latency (I encountered one with 140+ millisecond ping, which some hardcore players would consider to be unacceptable). There is also no guarantee that the players will stay for another round after one is finished, leaving the player searching for another server. The small population hurts the dueling modes the most, where players go head-to-head, one-versus-one. Joining one such server, I spent eight minutes spectating the match being played to wait for the next round. Then everyone left and I had no one to play with.

Waiting is only one pain point of a small server. An unavoidable problem when the number of players is small is imbalanced matchmaking, where experienced players find themselves matched against people new to the game. After I joined another server and waited another seven minutes (leaving me with an effective overall queue of 15 minutes), I got matched against someone who mopped the floor with me. Right after that, I completely stomped my next opponent. Both of these matches occurred on the same ranked server; successes and/or failures on such servers are added to the statistics on one's public-facing profile (see an example here) that detail how accomplished one is.

[Fight]

Nonetheless, the game is still lots of fun. It's intense: there are nine weapons to choose from, including a short-range Riotgun (i.e. shotgun), a medium-range Plasmagun for spreading fire over an area, and the overall reliable long-range Rocket Launcher (which can also boost one's jumps if correctly timed). In some modes, all of the weapons are available when one spawns (i.e. begins the game or is resurrected following death). In others, one begins with a weak Gunblade (which serves the purpose of both pistol and knife in one device) and must collect ammunition and weapons around the map. These weapons can be instantly switched at the press of a button. Success in combat against opponents of similar skill is gratifying; one gets a sense of accomplishment from hopping around nimbly to dodge enemy fire and instinctively swapping to the right weapon at the right time to secure a kill.

Until the 2.0 version, Warsow had an awkward licensing regime. While the game engine's codebase was (and is) available under GPLv2-or-later, a proprietary "Warsow Content License", effectively allowing only redistribution, applied to all the media assets. Furthermore, outside contributors had to accept a poorly-written "Contribution License Agreement". It specified that any submitted "game rules" (not adequately defined in the license) became the property of "Chasseur de bots" (a now-defunct association that held the assets). The copyright to any contributed media assets were also assigned, but the contributor retained the right to "display the work as part of a personal portfolio". Recently, the active development team contacted the old Chasseur de bots members as well as most of the past contributors (some were unable to be reached) to ask for a relicense. With their agreement, all the art assets, with the exception of some sound effects (mostly that of weapons firing and the grunts of the player's character) and some map textures, are now available under the copyleft Creative Commons Attribution-ShareAlike 4.0 International License. The development team is looking to replace any assets that are not licensed CC BY-SA to make the game fully open-source.

2.0 comes with much more than a licensing update. There have been major gameplay balance changes, including an increase in damage to a number of weapons as well as adding more consistency in recoil and "splash radius" (i.e. the area-of-effect in which a launched grenade or rocket will cause damage). Linux versions now use Simple DirectMedia Layer 2 for video. HTTPS has been mandated for matchmaking, which is a welcome change for security-conscious players. 2.0 also takes better advantage of multi-threading to address a number of previous issues, including latency in gameplay, some unpleasant race conditions, and slow load times. The renderer is much better, boasting a "30% to 50% overall performance improvement". Changes to the graphics, including weapon effects, bullet models, and textures for playable characters, make the game feel more modern. The game is also available in nine additional languages. The full list of changes can be found here.

There is lots of room for new contributors looking to help out. Both the client and the server (which share the same repository) are freely-licensed and written in C, C++, and AngelScript, which is a popular object-oriented scripting language for video game development. The Warsow developers provide an SDK [.tar.gz], which comes with the full source code of the game, documentation, and tools (including build scripts). The "sourcecode_quickstart" file sums up the fundamentals of the source code's structure, with a helpful opening section:

Warsow is a program built around 'frames'. First the program reads inputs, then it 'thinks', modifying the current gamestate, and then implements the current state.

This means, that there is 1 major loop handling all application logic. This called a 'state machine' design, which can be confusing when you [are] used to straight-forward procedural or object-oriented programming.

This may sound pretty abstract, but this is due to the fact that Warsow is a client AND a server with exactly the same sourcecode. This means that in the big lines, the same steps are taken for both the client and the server. Of course, once digging deeper into the code, things will start looking very different, since the server is the one who actually makes all decisions, sends state-changes and events to the client (or clients), who then alter their local state and implement it (as in: build the scene and render it)."

The developer team has stated that level designers, computer programmers (particularly those with a good grasp for game engines), 3D artists, translators, and a community manager would be great additions. Some of the goals going forward for Warsow 3.0 are a release of a version for the Steam video game marketplace as well as updating the game's visuals. There is no mailing list but discussions on the official forums are fairly active. One can also contribute by submitting pull requests at the project's GitHub repositories. It's unclear when 3.0 will arrive, but given that the previous major release arrived a year and a half ago, a mid-year 2017 release seems like a reasonable guess.

For those interested in playing, or contributing to, a modern first-person shooter, Warsow might just be the right choice.

Comments (3 posted)

Panopticlick 2

By Nathan Willis
December 23, 2015

The Electronic Frontier Foundation (EFF) has rolled out a major update to its online browser-fingerprinting tool Panopticlick. The tool's site lets visitors perform a scan to assess how uniquely identifiable their web browser is among all web traffic—although, in the past, the EFF has also used the same code to research the fingerprinting of web browsers en masse. The new update, dubbed Panopticlick 2.0, adds new tests to gauge a browser's ad-blocking, tracker-blocking, and "Do Not Track" performance, and it has been designed to function better on mobile web browsers.

Uniqueness again

The first version of Panopticlick was unveiled in 2010. At that time, the EFF reported that approximately 84% of individual users' browsers could be uniquely identified without any use of login credentials, cookies, or other stateful mechanisms. Rather, Panopticlick assembled a "fingerprint" of each browser using only passive configuration information: the details revealed in the User-Agent string, the list of plugins and fonts installed, various localization settings, window and session properties accessible through CSS queries, and so forth.

Panopticlick's 2015 update adds some new fingerprinting tests, such as the HTML <canvas> fingerprinting technique first publicized in 2014 and a check for touchscreen support. In the HTML <canvas> test (and its WebGL cousin), the Panopticlick code renders a hidden image (using the HTML or WebGL <canvas> element), then hashes the result. The variations in the display, graphics stack, and text-rendering settings of the client machine combine to make each such image slightly different. The touch-support test captures whether touch events are supported, plus whether the onTouchStart JavaScript event is supported and the number of touch points reported by the hardware.

When combined, all of the fingerprinting tests amount to a profile of the user's browser. The Panopticlick test site lets users see how many of the other browsers that have visited the site reported the same information on each test, plus how many "bits" of uniqueness accumulate from each test. The later number is the binary logarithm of the former, so interpreting it meaningfully can take some thought. At the moment, there have been about 6.2 million visitors, so any test that gives a unique result is reported as equating to (rounded) 22.57 bits. As more site visitors run the test battery, those numbers will fluctuate.

For instance, my "Browser Plugin Details" list—which enumerates all of the codec- and version-compatibility information reported for each installed plugin—hit the maximum of 22.57 bits, even though all of my browser plugins come directly from my distribution repository. But I am inconsistent about updating them; if all were refreshed to the latest release, the uniqueness of the "Browser Plugin Details" would doubtless go down. In contrast, I work on font projects, so my list of installed fonts (which also hit the maximum of 22.57) includes fonts that I built locally. Thus, it is essentially guaranteed to be unique, a factor that is out of the browser developers' hands. On the other hand, the local font list can and does change from one day to the next, which limits its effectiveness in tracking the browser across sessions. Whether or not the browser ought to report either of these configurations to remote servers is an open question.

Privacy dipstick

The bigger change in Panopticlick 2.0 is the addition of tests that measure key privacy features of the user's browser. These tests do not factor into the unique browser-fingerprint computation at all, but they are clearly of value to users interested in privacy and anonymity. The tests employ HTTP requests that match the filters from first- and third-party ad-blocking and tracker-blocking tools. The EFF runs a set of test servers on domains to ensure that Panopticlick can test the full variety of ad and tracker options. One of these test domains is set up to advertise the EFF's privacy-friendly Do Not Track header policy, in order to test whether or not the browser un-blocks that domain in response to the policy.

The Panopticlick site notes that it takes steps to ensure that its phony tracker domains (e.g., eviltracker.net) are included in the blacklists used by popular URL-based blocking extensions like Disconnect, and that the phony trackers conform to patterns caught by the heuristic algorithm used by the EFF's own Privacy Badger extension. The results reported to the user are a brief table of "yes" and "no" results.

The fingerprinting score is likely to be of more interest to users well-versed in online privacy. Finally, the site provides a list of suggested countermeasures. Unfortunately, the list is rather brief—it amounts to "use Tor Browser, disable JavaScript, and don't use a 'rare' browser if you can avoid it." A more detailed examination of the issues—for example, look at how to disable JavaScript localStorage or set a nondescript User-Agent string—would be a worthwhile and welcome addition.

The future

If the 2010 release of the initial Panopticlick is any guide, the community should expect the EFF to conduct its own research into the state of browser fingerprinting and produce some hard numbers. A few months after the 2010 announcement of Panopticlick, EFF Senior Technologist Peter Eckersley published a paper [PDF] summarizing the data seen by Panopticlick and characterizing its privacy implications. Even if a new study is a long time in coming from the EFF, though, interested parties can take matters into their own hands. Unlike with the 2010 release, the Panopticlick source code is available on GitHub. It will be interesting to see what others do with the code.

Sadly, in the long run, Panopticlick may only be useful to end users as a canary in the coal mine—that is, to raise awareness that disabling ads and tracking beacons is not enough to guard against a party determined to identify and profile users online, and not as a weapon to find and disable privacy-leaking features in a browser. That is because most of the data points used to assemble a Panopticlick-style browser fingerprint cannot fully be suppressed. Every setting or preference that can be communicated between the client and a web server contributes incrementally to the formula.

One can always argue about where to draw the line, suggesting that too many new web APIs are being implemented, each of which increases the chance of a browser being fingerprinted. But the public wants functionality from its mobile and desktop browsers, and that trend is not likely to stop. Google's Chrome/Chromium team has evidently made up its mind that combating browser fingerprinting is a lost cause; the project's FAQ notes that "defeating such fingerprinting is likely not practical without fundamental changes to how the Web works." Roughly 33 bits are required to uniquely identify a browser from the global population, the FAQ states, and disabling APIs is not be enough to reduce each browser's fingerprint to below that threshold.

Interest in the topic appears to be somewhat higher at Mozilla; a tracking bug was filed after the 2010 Panopticlick release and a wiki page created to discuss reducing the "fingerprintability" of Firefox (although the information there is no longer up to date). More recently, issues have been raised to deal with specific information leaks, including the <canvas> attack, the WebSpeech API, the installed-font list, and the plugin list. A number of the proposed solutions come from the Tor Browser.

Certainly any egregious information leaks from the browser should be patched, but there is a lot less consensus on how much fingerprint resistance users have a right to expect from a browser running in its default mode. After all, when privacy and anonymity are paramount, the tools do exist for users to enable private browsing, disable JavaScript, or switch over to Tor. Perhaps that is enough, and it needs to be left up to the user to know in which situations access to the latest and greatest web features stops being important and privacy concerns take center stage.

For the time being, the updated Panopticlick can at least enable users to get a clearer picture of the uniqueness of their browser and the impact of various privacy settings on its fingerprint. And educating the user is ultimately the best course of action.

Comments (9 posted)

Page editor: Jonathan Corbet

Security

Cracking Linux with the backspace key?

By Jonathan Corbet
December 21, 2015
Anybody who has been paying attention to the net over the last week or so will certainly have noticed an abundance of articles with titles like "How to hack any Linux machine just using backspace". All this press does indeed highlight an important vulnerability, but it may not be the one that they think they are talking about.

The source of these reports is a mildly hype-ridden disclosure of a vulnerability in the GRUB2 bootloader by Hector Marco and Ismael Ripoll. It seems that hitting the backspace character at the GRUB2 username prompt enough times will trigger an integer underflow, allowing a bypass of GRUB2's authentication stage. According to the authors, this vulnerability, exploitable for denial-of-service, information-disclosure, and code-execution attacks, "results in an incalculable number of affected devices." It is indeed a serious vulnerability in some settings and it needs to be fixed. Unfortunately, some of the most severely affected systems may also be the hardest to patch. But language like the above leads reporters to write that any Linux system can be broken into using the backspace key, which stretches the truth somewhat.

It is worth looking at what is required to actually exploit this vulnerability. The conditions are:

  • An attacker must have physical access to the system's console to be able to type the famous backspaces. In general, once an attacker can actually put hands onto a target system, the game is already lost. That is no excuse for a trivially exploited vulnerability in the bootloader's authentication code, but it does add a bit of perspective. Note that you may have physical access to the Linux-based entertainment system in your airplane seat, but you almost certainly lack access to the console.

  • The attacker must be able to reach the bootloader's authentication prompt. That generally means being able to force a running Linux system to reboot so that the bootloader actually runs. If the system is configured to allow unprivileged users to cause a reboot, then complaints of "denial of service" are already moot; service can be denied at any time. Of course, that can also be done by pulling the plug since, as has already been noted, the attacker has physical access to the system.

  • The system must be running the GRUB2 bootloader. If it's an x86 system, chances are that it is indeed GRUB2 that is installed there. Other architectures tend to use other bootloaders, though. Many of the embedded systems that might be most at risk from this type of vulnerability will thus not be running the vulnerable software.

  • The bootloader must actually be configured for password-based access. While lacking hard data, your editor would guess that a small minority of systems booting with GRUB2 have passwords set on them. In most cases, simply rebooting allows full access to the bootloader and its capabilities — no exploit required.

  • The system must be running an exploitable version of GRUB2. This part is relatively easy — the vulnerability has been present since version 1.98, released in late 2009.

Given the above, it seems unlikely that this vulnerability has exposed "any Linux system" to attack. Instead, it has exposed a small number of systems that are configured with bootloader security, but that also allow physical access to a console keyboard. For some of those systems, this vulnerability constitutes a true emergency. For most of us, though, there is no particular need to go into red alert.

There is a different vulnerability that has been exposed here, though, that is somewhat more severe. Anybody who reads the mainstream technical press now "knows" that any Linux system can be broken into by pressing a single key a few times. Linux security has been exposed as a laughable joke; how can anybody take such a system seriously?

In other words, all it takes is a couple of researchers who are able to turn up a bug, create a logo and a cute name ("Back to 28" in this case) for it, and post it as a "zero-day vulnerability" to create a storm of mocking bad publicity for Linux. Relative to, say, the Juniper firewall backdoor, disclosed at about the same time, the GRUB2 issue is minor indeed. But "28 backspaces" makes for good headlines, so it may well be that more people know about the GRUB2 vulnerability than the "unauthorized code" in security-critical Juniper products. It's bad enough when, as happens all too often, we are justly lambasted for security problems affecting large numbers of users; to be taken to task for this one is just kind of sad.

Arguably, we have just seen an exploit of a vulnerability in our public-relations system: any attacker with a "zero-day" bug and some minimal marketing skills can cause untold damage to the image of Linux as a whole. Companies deal with such issues by firing up their own PR machines, but Linux does not really have any such thing. So we are stuck trying to patch up our reputation after the fact, hoping that at least some members of the press will eventually figure out that, in fact, you really can't hack into any Linux system by hitting the backspace key.

Comments (32 posted)

Brief items

Security quotes of the week

The problem with cryptographic backdoors isn't that they're the only way that an attacker can break into our cryptographic systems. It's merely that they're one of the best. They take care of the hard work, the laying of plumbing and electrical wiring, so attackers can simply walk in and change the drapes.
Matthew Green

There's tons of effort to build and use better languages, often with the long-term goal of replacing today's massive C code base. However, the short-term situation is that misguided gcc "optimizations" are a huge security threat, and boringcc will eliminate that threat much more quickly than new languages will, precisely because it _will_ work with typical C code. Building a new compiler is orders of magnitude less work than rewriting the C code base in new languages.
Daniel J. Bernstein (also known as "djb"), more info on "boringcc" here

Traditionally, new technologies were adopted slowly over decades. There was time for people to figure them out, and for their social repercussions to percolate through society. Legislatures and courts had time to figure out rules for these technologies and how they should integrate into the existing legal structures.

They don't always get it right—the sad history of copyright law in the United States is an example of how they can get it badly wrong again and again—but at least they had a chance before the technologies become widely adopted.

That's just not true anymore. A new technology can go from zero to a hundred million users in a year or less. That's just too fast for the political or legal process. By the time they're asked to make rules, these technologies are well-entrenched in society.

Bruce Schneier

Comments (10 posted)

Green: On the Juniper backdoor

Here's an interesting article from cryptographer Matthew Green on how the Juniper backdoor is the least interesting part of this whole episode. "Thus Dual EC is safe only if you assume no tiny bug in the code could accidentally leak out 30 bytes or so of raw Dual EC output. If it did, this would make all subsequent seeding calls predictable, and thus render all numbers generated by the system predictable. In general, this would spell doom for the confidentiality of VPN connections. And unbelievably, amazingly, who coulda thunk it, it appears that such a bug does exist in many versions of ScreenOS, dating to both before and after the 'unauthorized code' noted by Juniper."

Comments (none posted)

New vulnerabilities

blueman: privilege escalation

Package(s):blueman CVE #(s):CVE-2015-8612
Created:December 21, 2015 Updated:January 26, 2016
Description: From the Debian advisory:

It was discovered that the Mechanism plugin of Blueman, a graphical Bluetooth manager, allows local privilege escalation.

Alerts:
Arch Linux ASA-201601-30 blueman 2016-01-25
Mageia MGASA-2015-0491 blueman 2015-12-28
Slackware SSA:2015-356-01 blueman 2015-12-22
Debian DSA-3427-1 blueman 2015-12-18

Comments (none posted)

cacti: SQL injection

Package(s):cacti CVE #(s):CVE-2015-8369
Created:December 17, 2015 Updated:January 4, 2016
Description: From the Debian advisory:

Several SQL injection vulnerabilities have been discovered in Cacti, an RRDTool frontend written in PHP. Specially crafted input can be used by an attacker in the rra_id value of the graph.php script to execute arbitrary SQL commands on the database.

Alerts:
Gentoo 201607-05 cacti 2016-07-16
Mageia MGASA-2016-0025 cacti 2016-01-20
Debian-LTS DLA-374-3 cacti 2016-01-04
Debian-LTS DLA-374-2 cacti 2015-12-30
Debian-LTS DLA-374-1 cacti 2015-12-26
Arch Linux ASA-201602-24 cacti 2016-02-28
openSUSE openSUSE-SU-2016:0440-1 cacti 2016-02-12
openSUSE openSUSE-SU-2016:0438-1 cacti 2016-02-12
openSUSE openSUSE-SU-2016:0437-1 cacti 2016-02-12
Debian DSA-3423-1 cacti 2015-12-16

Comments (none posted)

chromium: code execution

Package(s):chromium-browser CVE #(s):CVE-2015-6792
Created:December 18, 2015 Updated:December 23, 2015
Description: From the Red Hat advisory:

Two flaws were found in the processing of malformed web content. A web page containing malicious content could cause Chromium to crash, execute arbitrary code, or disclose sensitive information when visited by the victim. (CVE-2015-6792)

Alerts:
Debian DSA-3456-1 chromium-browser 2016-01-27
openSUSE openSUSE-SU-2015:2347-1 Chromium 2015-12-23
openSUSE openSUSE-SU-2015:2346-1 Chromium 2015-12-23
Gentoo 201603-09 chromium 2016-03-12
Mageia MGASA-2015-0479 chromium-browser-stable 2015-12-17
Red Hat RHSA-2015:2665-01 chromium-browser 2015-12-17

Comments (none posted)

claws-mail: code execution

Package(s):claws-mail CVE #(s):CVE-2015-8614
Created:December 23, 2015 Updated:February 17, 2016
Description: From the Arch Linux advisory:

A remotely triggerable buffer overflow has been found in the code of claws-mail handling character conversion, in functions conv_jistoeuc(), conv_euctojis() and conv_sjistoeuc(), in codeconv.c. There was no bounds checking on buffers passed to these functions, some stack-based but other potentially heap-based. This issue has been located in the wild and might currently be exploited.

A remote attacker might be able to execute arbitrary code on the affected host by sending a crafted e-mail to a claws-mail user.

Alerts:
Gentoo 201606-11 claws-mail 2016-06-26
Debian DSA-3452-1 claws-mail 2016-01-23
Debian-LTS DLA-383-1 claws-mail 2016-01-12
Mageia MGASA-2016-0008 claws-mail 2016-01-12
openSUSE openSUSE-SU-2016:0002-1 claws-mail 2016-01-02
Fedora FEDORA-2015-3a073171c3 claws-mail 2016-01-03
Fedora FEDORA-2015-aa14be8d92 claws-mail 2015-12-31
Arch Linux ASA-201512-13 claws-mail 2015-12-22
Mageia MGASA-2016-0067 claws-mail 2016-02-17
openSUSE openSUSE-SU-2016:0485-1 claws-mail 2016-02-17
openSUSE openSUSE-SU-2016:0479-1 claws-mail 2016-02-16

Comments (none posted)

director: two vulnerabilities

Package(s):RHELOSP7 director CVE #(s):CVE-2015-5303 CVE-2015-5329
Created:December 22, 2015 Updated:December 23, 2015
Description: From the Red Hat advisory:

It was discovered that the director's NeutronMetadataProxySharedSecret parameter remained specified at the default value of 'unset'. This value is used by OpenStack Networking to sign instance headers; if unchanged, an attacker knowing the shared secret could use this flaw to spoof OpenStack Networking metadata requests. (CVE-2015-5303)

A flaw was found in the director (openstack-tripleo-heat-templates) where the RabbitMQ credentials defaulted to guest/guest and supplied values in the configuration were not used. As a result, all deployed overclouds used the same credentials (guest/guest). A remote, non-authenticated attacker could use this flaw to access RabbitMQ services in the deployed cloud. (CVE-2015-5329)

Alerts:
Red Hat RHSA-2015:2650-01 RHELOSP7 director 2015-12-21

Comments (none posted)

ipython: code execution

Package(s):ipython CVE #(s):CVE-2015-7337
Created:December 18, 2015 Updated:December 23, 2015
Description: From the Gentoo advisory:

A remote attacker could entice a user to open a specially crafted text file using IPython, possibly resulting in execution of arbitrary JavaScript with the privileges of the process.

Alerts:
Gentoo 201512-02 ipython 2015-12-17

Comments (none posted)

kernel: information disclosure

Package(s):kernel CVE #(s):CVE-2015-7885
Created:December 17, 2015 Updated:December 23, 2015
Description: From the Ubuntu advisory:

It was discovered that the driver for Digi Neo and ClassicBoard devices did not properly initialize data structures. A local attacker could use this to obtain sensitive information from the kernel. (CVE-2015-7885)

Alerts:
openSUSE openSUSE-SU-2016:0301-1 kernel 2016-02-01
Mageia MGASA-2016-0015 kernel-tmb 2016-01-14
Mageia MGASA-2016-0014 kernel-linus 2016-01-14
Mageia MGASA-2016-0005 kernel 2016-01-11
Ubuntu USN-2843-3 linux-raspi2 2015-12-17
Ubuntu USN-2843-2 linux-lts-wily 2015-12-17
Ubuntu USN-2842-2 linux-lts-vivid 2015-12-17
Ubuntu USN-2844-1 linux-lts-utopic 2015-12-17
Ubuntu USN-2841-2 linux-lts-trusty 2015-12-16
Ubuntu USN-2843-1 kernel 2015-12-17
Ubuntu USN-2842-1 kernel 2015-12-17
Ubuntu USN-2841-1 kernel 2015-12-16
openSUSE openSUSE-SU-2016:0318-1 kernel 2016-02-03

Comments (none posted)

kernel: information disclosure

Package(s):kernel CVE #(s):CVE-2015-7884
Created:December 17, 2015 Updated:December 23, 2015
Description: From the Ubuntu advisory:

It was discovered that the virtual video osd test driver in the Linux kernel did not properly initialize data structures. A local attacker could use this to obtain sensitive information from the kernel. (CVE-2015-7884)

Alerts:
Mageia MGASA-2016-0015 kernel-tmb 2016-01-14
Mageia MGASA-2016-0014 kernel-linus 2016-01-14
Mageia MGASA-2016-0005 kernel 2016-01-11
openSUSE openSUSE-SU-2016:1008-1 kernel 2016-04-12
Ubuntu USN-2843-3 linux-raspi2 2015-12-17
Ubuntu USN-2843-2 linux-lts-wily 2015-12-17
Ubuntu USN-2842-2 linux-lts-vivid 2015-12-17
Ubuntu USN-2843-1 kernel 2015-12-17

Comments (none posted)

kernel: denial of service

Package(s):kernel CVE #(s):CVE-2015-8543
Created:December 18, 2015 Updated:December 23, 2015
Description: From the Debian advisory:

CVE-2015-8543: It was discovered that a local user permitted to create raw sockets could cause a denial-of-service by specifying an invalid protocol number for the socket. The attacker must have the CAP_NET_RAW capability in their user namespace. This has been fixed for the stable distribution (jessie) only.

Alerts:
Oracle ELSA-2016-2574 kernel 2016-11-10
Red Hat RHSA-2016:2584-02 kernel-rt 2016-11-03
Red Hat RHSA-2016:2574-02 kernel 2016-11-03
openSUSE openSUSE-SU-2016:2649-1 kernel 2016-10-26
SUSE SUSE-SU-2016:2074-1 kernel 2016-08-15
Mageia MGASA-2016-0233 kernel-tmb 2016-06-22
Mageia MGASA-2016-0232 kernel-linus 2016-06-22
openSUSE openSUSE-SU-2016:0301-1 kernel 2016-02-01
openSUSE openSUSE-SU-2016:0280-1 kernel 2016-01-29
SUSE SUSE-SU-2016:0168-1 kernel 2016-01-19
Debian-LTS DLA-378-1 linux-2.6 2016-01-05
Debian DSA-3434-1 kernel 2016-01-05
Fedora FEDORA-2015-c59710b05d kernel 2015-12-22
Scientific Linux SLSA-2016:0855-1 kernel 2016-06-16
Mageia MGASA-2016-0225 kernel 2016-06-13
Oracle ELSA-2016-3567 kernel 2.6.32 2016-05-20
Oracle ELSA-2016-3567 kernel 2.6.32 2016-05-20
Oracle ELSA-2016-3566 kernel 2.6.39 2016-05-20
Oracle ELSA-2016-3566 kernel 2.6.39 2016-05-20
Oracle ELSA-2016-3565 kernel 3.8.13 2016-05-20
Oracle ELSA-2016-3565 kernel 3.8.13 2016-05-20
Red Hat RHSA-2016:0855-01 kernel 2016-05-10
SUSE SUSE-SU-2016:1203-1 kernel 2016-05-03
SUSE SUSE-SU-2016:1102-1 kernel 2016-04-19
Scientific Linux SLSA-2016:2574-2 kernel 2016-12-14
SUSE SUSE-SU-2016:0911-1 kernel 2016-03-30
Debian DSA-3426-2 ctdb 2016-03-03
Ubuntu USN-2910-2 linux-lts-vivid 2016-02-27
SUSE SUSE-SU-2016:0585-1 kernel 2016-02-25
Ubuntu USN-2910-1 linux-lts-vivid 2016-02-22
Ubuntu USN-2907-2 linux-lts-trusty 2016-02-22
Ubuntu USN-2907-1 kernel 2016-02-22
Fedora FEDORA-2015-c1c2f5e168 kernel 2015-12-22
Debian DSA-3426-1 kernel 2015-12-17
openSUSE openSUSE-SU-2016:0318-1 kernel 2016-02-03
Ubuntu USN-2886-2 linux-ti-omap4 2016-02-01
Ubuntu USN-2890-3 linux-raspi2 2016-02-01
Ubuntu USN-2890-2 linux-lts-wily 2016-02-01
Ubuntu USN-2888-1 linux-lts-utopic 2016-02-01
Ubuntu USN-2886-1 kernel 2016-02-01
Ubuntu USN-2890-1 kernel 2016-02-01

Comments (none posted)

kernel: denial of service

Package(s):kernel CVE #(s):CVE-2015-8215
Created:December 18, 2015 Updated:December 23, 2015
Description: From the SUSE advisory:

CVE-2015-8215: net/ipv6/addrconf.c in the IPv6 stack in the Linux kernel did not validate attempted changes to the MTU value, which allowed context-dependent attackers to cause a denial of service (packet loss) via a value that is (1) smaller than the minimum compliant value or (2) larger than the MTU of an interface, as demonstrated by a Router Advertisement (RA) message that is not validated by a daemon, a different vulnerability than CVE-2015-0272. (bsc#955354)

Alerts:
openSUSE openSUSE-SU-2016:2649-1 kernel 2016-10-26
SUSE SUSE-SU-2016:2074-1 kernel 2016-08-15
openSUSE openSUSE-SU-2016:0301-1 kernel 2016-02-01
SUSE SUSE-SU-2015:2350-1 kernel 2015-12-23
SUSE SUSE-SU-2015:2339-1 kernel 2015-12-22
Scientific Linux SLSA-2016:0855-1 kernel 2016-06-16
Oracle ELSA-2016-3567 kernel 2.6.32 2016-05-20
Oracle ELSA-2016-3567 kernel 2.6.32 2016-05-20
Oracle ELSA-2016-3566 kernel 2.6.39 2016-05-20
Oracle ELSA-2016-3566 kernel 2.6.39 2016-05-20
Oracle ELSA-2016-3565 kernel 3.8.13 2016-05-20
Oracle ELSA-2016-3565 kernel 3.8.13 2016-05-20
Red Hat RHSA-2016:0855-01 kernel 2016-05-10
SUSE SUSE-SU-2016:1203-1 kernel 2016-05-03
SUSE SUSE-SU-2016:0585-1 kernel 2016-02-25
SUSE SUSE-SU-2016:0354-1 kernel 2016-02-05
SUSE SUSE-SU-2015:2292-1 kernel 2015-12-17
openSUSE openSUSE-SU-2016:0318-1 kernel 2016-02-03

Comments (none posted)

kernel: multiple vulnerabilities

Package(s):kernel CVE #(s):CVE-2015-8550 CVE-2015-8551 CVE-2015-8552
Created:December 21, 2015 Updated:December 23, 2015
Description: From the Ubuntu advisory:

Felix Wilhelm discovered a race condition in the Xen paravirtualized drivers which can cause double fetch vulnerabilities. An attacker in the paravirtualized guest could exploit this flaw to cause a denial of service (crash the host) or potentially execute arbitrary code on the host. (CVE-2015-8550)

Konrad Rzeszutek Wilk discovered the Xen PCI backend driver does not perform sanity checks on the device's state. An attacker could exploit this flaw to cause a denial of service (NULL dereference) on the host. (CVE-2015-8551)

Konrad Rzeszutek Wilk discovered the Xen PCI backend driver does not perform sanity checks on the device's state. An attacker could exploit this flaw to cause a denial of service by flooding the logging system with WARN() messages causing the initial domain to exhaust disk space. (CVE-2015-8552)

Jann Horn discovered a ptrace issue with user namespaces in the Linux kernel. The namespace owner could potentially exploit this flaw by ptracing a root owned process entering the user namespace to elevate its privileges and potentially gain access outside of the namespace. (http://bugs.launchpad.net/bugs/1527374)

Alerts:
openSUSE openSUSE-SU-2016:2184-1 kernel 2016-08-29
SUSE SUSE-SU-2016:2105-1 the Linux Kernel 2016-08-19
SUSE SUSE-SU-2016:1937-1 kernel 2016-08-02
SUSE SUSE-SU-2016:1764-1 kernel 2016-07-08
SUSE SUSE-SU-2016:1745-1 xen 2016-07-06
SUSE SUSE-SU-2016:1707-1 the Linux Kernel 2016-06-30
openSUSE openSUSE-SU-2016:0301-1 kernel 2016-02-01
openSUSE openSUSE-SU-2016:0280-1 kernel 2016-01-29
SUSE SUSE-SU-2016:0168-1 kernel 2016-01-19
openSUSE openSUSE-SU-2016:0126-1 xen 2016-01-14
openSUSE openSUSE-SU-2016:0124-1 xen 2016-01-14
openSUSE openSUSE-SU-2016:0123-1 xen 2016-01-14
Mageia MGASA-2016-0015 kernel-tmb 2016-01-14
Mageia MGASA-2016-0014 kernel-linus 2016-01-14
Mageia MGASA-2016-0005 kernel 2016-01-11
Debian DSA-3434-1 kernel 2016-01-05
Fedora FEDORA-2015-c44bd3e0fa xen 2016-01-02
Fedora FEDORA-2015-d8253e2b1d xen 2015-12-22
SUSE SUSE-SU-2016:1318-1 xen 2016-05-17
Debian-LTS DLA-479-1 xen 2016-05-18
SUSE SUSE-SU-2016:1203-1 kernel 2016-05-03
SUSE SUSE-SU-2016:1154-1 xen 2016-04-26
SUSE SUSE-SU-2016:1102-1 kernel 2016-04-19
SUSE SUSE-SU-2016:0955-1 xen 2016-04-05
Gentoo 201604-03 xen 2016-04-05
SUSE SUSE-SU-2016:0911-1 kernel 2016-03-30
SUSE SUSE-SU-2016:0873-1 xen 2016-03-24
Debian DSA-3519-1 xen 2016-03-17
SUSE SUSE-SU-2016:0658-1 Xen 2016-03-04
Mageia MGASA-2016-0098 xen 2016-03-07
SUSE SUSE-SU-2016:0585-1 kernel 2016-02-25
Debian DSA-3471-1 qemu 2016-02-08
Ubuntu USN-2852-1 linux-raspi2 2015-12-19
Ubuntu USN-2853-1 linux-lts-wily 2015-12-20
Ubuntu USN-2854-1 linux-lts-vivid 2015-12-20
Ubuntu USN-2849-1 linux-lts-utopic 2015-12-19
Ubuntu USN-2847-1 linux-lts-trusty 2015-12-19
Ubuntu USN-2846-1 kernel 2015-12-19
Ubuntu USN-2848-1 kernel 2015-12-19
Ubuntu USN-2850-1 kernel 2015-12-19
Ubuntu USN-2851-1 kernel 2015-12-19
Ubuntu USN-2891-1 qemu, qemu-kvm 2016-02-03
openSUSE openSUSE-SU-2016:0318-1 kernel 2016-02-03
Ubuntu USN-2886-2 linux-ti-omap4 2016-02-01

Comments (none posted)

kernel: denial of service

Package(s):kernel CVE #(s):CVE-2015-7550
Created:December 22, 2015 Updated:February 23, 2016
Description: From the Red Hat bugzilla:

A race between revoking a user-type key and reading from it was found, causing the kernel to crash. This race can be triggered by unprivileged user.

Alerts:
Oracle ELSA-2016-2574 kernel 2016-11-10
openSUSE openSUSE-SU-2016:2649-1 kernel 2016-10-26
SUSE SUSE-SU-2016:2074-1 kernel 2016-08-15
Mageia MGASA-2016-0233 kernel-tmb 2016-06-22
Mageia MGASA-2016-0232 kernel-linus 2016-06-22
openSUSE openSUSE-SU-2016:0301-1 kernel 2016-02-01
openSUSE openSUSE-SU-2016:0280-1 kernel 2016-01-29
SUSE SUSE-SU-2016:0168-1 kernel 2016-01-19
Debian-LTS DLA-378-1 linux-2.6 2016-01-05
Debian DSA-3434-1 kernel 2016-01-05
Fedora FEDORA-2015-c59710b05d kernel 2015-12-22
Mageia MGASA-2016-0225 kernel 2016-06-13
SUSE SUSE-SU-2016:1203-1 kernel 2016-05-03
SUSE SUSE-SU-2016:1102-1 kernel 2016-04-19
SUSE SUSE-SU-2016:0911-1 kernel 2016-03-30
Ubuntu USN-2910-2 linux-lts-vivid 2016-02-27
SUSE SUSE-SU-2016:0585-1 kernel 2016-02-25
Ubuntu USN-2911-2 linux-ti-omap4 2016-02-22
Ubuntu USN-2910-1 linux-lts-vivid 2016-02-22
Ubuntu USN-2907-2 linux-lts-trusty 2016-02-22
Ubuntu USN-2911-1 kernel 2016-02-22
Ubuntu USN-2907-1 kernel 2016-02-22
Fedora FEDORA-2015-c1c2f5e168 kernel 2015-12-22
openSUSE openSUSE-SU-2016:0318-1 kernel 2016-02-03
Ubuntu USN-2890-3 linux-raspi2 2016-02-01
Ubuntu USN-2890-2 linux-lts-wily 2016-02-01
Ubuntu USN-2888-1 linux-lts-utopic 2016-02-01
Ubuntu USN-2890-1 kernel 2016-02-01

Comments (none posted)

kernel: denial of service

Package(s):kernel CVE #(s):CVE-2015-7509
Created:December 22, 2015 Updated:December 23, 2015
Description: From the SUSE advisory:

Mounting ext4 filesystems in no-journal mode could have lead to a system crash.

Alerts:
openSUSE openSUSE-SU-2016:2649-1 kernel 2016-10-26
SUSE SUSE-SU-2016:2074-1 kernel 2016-08-15
SUSE SUSE-SU-2015:2350-1 kernel 2015-12-23
SUSE SUSE-SU-2015:2339-1 kernel 2015-12-22
Scientific Linux SLSA-2016:0855-1 kernel 2016-06-16
Oracle ELSA-2016-3567 kernel 2.6.32 2016-05-20
Oracle ELSA-2016-3567 kernel 2.6.32 2016-05-20
Oracle ELSA-2016-3566 kernel 2.6.39 2016-05-20
Oracle ELSA-2016-3566 kernel 2.6.39 2016-05-20
Red Hat RHSA-2016:0855-01 kernel 2016-05-10
SUSE SUSE-SU-2016:1203-1 kernel 2016-05-03

Comments (none posted)

libldb: remote memory disclosure

Package(s):libldb CVE #(s):CVE-2015-5330
Created:December 18, 2015 Updated:December 23, 2015
Description: From the Red Hat bugzilla entry:

It was reported that when adding an LDB DN to the database, that if a \00 (null byte) is used, remote memory can be read due to a combination of talloc_strdup() and a length assignment.

Alerts:
SUSE SUSE-SU-2016:0164-1 samba 2016-01-19
CentOS CESA-2016:0010 samba4 2016-01-07
CentOS CESA-2016:0006 samba 2016-01-07
CentOS CESA-2016:0009 libldb 2016-01-07
CentOS CESA-2016:0009 libldb 2016-01-07
Oracle ELSA-2016-0010 samba4 2016-01-07
Oracle ELSA-2016-0011 samba 2016-01-07
Oracle ELSA-2016-0009 libldb 2016-01-07
Oracle ELSA-2016-0009 libldb 2016-01-07
Scientific Linux SLSA-2016:0010-2 samba4 2016-01-08
Scientific Linux SLSA-2016:0006-1 samba 2016-01-08
Scientific Linux SLSA-2016:0009-1 libldb 2016-01-08
Red Hat RHSA-2016:0010-02 samba4 2016-01-07
Red Hat RHSA-2016:0006-01 samba 2016-01-07
Red Hat RHSA-2016:0009-01 libldb 2016-01-07
Ubuntu USN-2855-1 samba 2016-01-05
Ubuntu USN-2856-1 ldb 2016-01-05
SUSE SUSE-SU-2016:0032-1 samba 2016-01-05
Debian DSA-3433-1 samba 2016-01-02
openSUSE openSUSE-SU-2015:2356-1 samba, ldb, talloc, tdb, tevent 2015-12-24
openSUSE openSUSE-SU-2015:2354-1 ldb, samba, talloc, tdb, tevent 2015-12-24
Gentoo 201612-47 samba 2016-12-24
openSUSE openSUSE-SU-2016:1107-1 samba 2016-04-20
openSUSE openSUSE-SU-2016:1106-1 samba 2016-04-20
openSUSE openSUSE-SU-2016:1064-1 samba 2016-04-17
Mageia MGASA-2016-0094 samba 2016-03-03
Ubuntu USN-2855-2 samba 2016-02-16
SUSE SUSE-SU-2015:2305-1 ldb, samba, talloc, tdb, tevent 2015-12-18
SUSE SUSE-SU-2015:2304-1 ldb, samba, talloc, tdb, tevent 2015-12-18
Fedora FEDORA-2015-af140eefbc libtevent 2015-12-18
Fedora FEDORA-2015-b960ca78bf libtevent 2015-12-18
Fedora FEDORA-2015-af140eefbc libtdb 2015-12-18
Fedora FEDORA-2015-b960ca78bf libtdb 2015-12-18
Fedora FEDORA-2015-af140eefbc libtalloc 2015-12-18
Fedora FEDORA-2015-b960ca78bf libtalloc 2015-12-18
Fedora FEDORA-2015-b960ca78bf libldb 2015-12-18
Fedora FEDORA-2015-af140eefbc libldb 2015-12-18

Comments (none posted)

libpng: read underflow

Package(s):libpng CVE #(s):CVE-2015-8540
Created:December 18, 2015 Updated:October 31, 2016
Description: From the libpng bug report:

there is a underflow read in png_check_keyword in pngwutil.c in libpng-1.2.54. if the data of "key" is only ' ' (0x20), it will read a byte before the buffer in line 1288,

Alerts:
Gentoo 201611-08 libpng 2016-11-15
openSUSE openSUSE-SU-2016:2672-1 libpng12 2016-10-28
Red Hat RHSA-2016:0099-01 java-1.7.1-ibm 2016-02-02
Red Hat RHSA-2016:0100-01 java-1.7.0-ibm 2016-02-02
Red Hat RHSA-2016:0101-01 java-1.6.0-ibm 2016-02-02
Debian DSA-3443-1 libpng 2016-01-13
Ubuntu USN-2861-1 libpng 2016-01-06
Fedora FEDORA-2015-ac8100927a libpng12 2016-01-02
Fedora FEDORA-2015-39499d9af8 libpng12 2016-01-02
Debian-LTS DLA-375-1 ia32-libs 2016-01-01
Fedora FEDORA-2015-0a543024bf libpng10 2015-12-31
Mageia MGASA-2015-0489 libpng12 2015-12-28
Fedora FEDORA-2015-3868cfa17b libpng10 2015-12-28
Debian-LTS DLA-375-1 libpng 2015-12-27
SUSE SUSE-SU-2016:0776-1 java-1_6_0-ibm 2016-03-15
SUSE SUSE-SU-2016:0770-1 java-1_6_0-ibm 2016-03-15
SUSE SUSE-SU-2016:0636-1 java-1_7_0-ibm 2016-03-02
SUSE SUSE-SU-2016:0431-1 java-1_6_0-ibm 2016-02-11
SUSE SUSE-SU-2016:0433-1 java-1_7_0-ibm 2016-02-11
SUSE SUSE-SU-2016:0428-1 java-1_6_0-ibm 2016-02-11
SUSE SUSE-SU-2016:0399-1 java-1_7_1-ibm 2016-02-10
SUSE SUSE-SU-2016:0401-1 java-1_7_1-ibm 2016-02-10
Slackware SSA:2015-351-02 libpng 2015-12-17

Comments (none posted)

openstack-nova: insecure VM instances

Package(s):openstack-nova CVE #(s):CVE-2015-7713
Created:December 22, 2015 Updated:December 23, 2015
Description: From the Red Hat advisory:

A vulnerability was discovered in the way OpenStack Compute (nova) networking handled security group updates; changes were not applied to already running VM instances. A remote attacker could use this flaw to access running VM instances.

Alerts:
Red Hat RHSA-2016:0017-01 openstack-nova 2016-01-11
Red Hat RHSA-2016:0013-01 openstack-nova 2016-01-07
Red Hat RHSA-2015:2684-01 openstack-nova 2015-12-21
Red Hat RHSA-2015:2673-01 openstack-nova 2015-12-21

Comments (none posted)

python2-pyamf: denial of service

Package(s):python2-pyamf CVE #(s):CVE-2015-8549
Created:December 18, 2015 Updated:December 23, 2015
Description: From the Arch Linux advisory:

PyAMF suffers from insufficient AMF input payload sanitization which results in the XML parser not preventing the processing of XML external entities (XXE). A specially crafted AMF payload, containing malicious references to XML external entities, can be used to trigger denial of service (DoS) conditions or arbitrarily return the contents of files that are accessible with the running application privileges.

A remote attacker is able to craft special XML files that, when processed, are injecting external entities resulting in denial of service of disclosure of arbitrary file contents.

Alerts:
Arch Linux ASA-201512-12 python2-pyamf 2015-12-17

Comments (none posted)

quassel: denial of service

Package(s):quassel CVE #(s):CVE-2015-8547
Created:December 17, 2015 Updated:January 6, 2016
Description: From the Mageia advisory:

The Quassel core could be crashed by a client using the op command, causing a denial of service (CVE-2015-8547).

Alerts:
Fedora FEDORA-2016-3bc3d7f66e quassel 2016-01-05
Fedora FEDORA-2016-7f0b1e47ac quassel 2016-01-05
openSUSE openSUSE-SU-2015:2345-1 quassel 2015-12-23
Mageia MGASA-2015-0475 quassel 2015-12-16

Comments (none posted)

ruby: code execution

Package(s):ruby CVE #(s):CVE-2015-7551
Created:December 17, 2015 Updated:January 12, 2016
Description: There is an unsafe tainted string vulnerability in Fiddle and DL. This issue was originally reported and fixed with CVE-2009-5147 in DL, but reappeared after DL was reimplemented using Fiddle and libffi.

A remote attacker is able to open a library via Fiddle with tainted library name if passed from an untrusted input.

Alerts:
Mageia MGASA-2016-0007 ruby 2016-01-12
Fedora FEDORA-2015-c4409eb73a ruby 2016-01-08
Fedora FEDORA-2015-eef21b972e ruby 2015-12-29
Arch Linux ASA-201512-11 ruby 2015-12-17

Comments (none posted)

rubygem-passenger: environment variable injection

Package(s):rubygem-passenger CVE #(s):CVE-2015-7519
Created:December 22, 2015 Updated:January 19, 2016
Description: From the SUSE advisory:

rubygem-passenger was not filtering the environment like apache is doing, allowing injection of environment variables.

Alerts:
Debian-LTS DLA-394-1 passenger 2016-01-18
SUSE SUSE-SU-2015:2337-1 rubygem-passenger 2015-12-21

Comments (none posted)

samba: multiple vulnerabilities

Package(s):samba CVE #(s):CVE-2015-5299 CVE-2015-7540 CVE-2015-3223 CVE-2015-5252 CVE-2015-5296
Created:December 18, 2015 Updated:January 4, 2016
Description: From the Red Hat bugzilla entries:

CVE-2015-5299: Samba: Missing access control check in shadow copy code

CVE-2015-7540: samba: DoS to AD-DC due to insufficient checking of asn1 memory allocation

CVE-2015-3223: samba: Remote DoS in Samba (AD) LDAP server

CVE-2015-5252: samba: Insufficient symlink verification in smbd

CVE-2015-5296: samba: Samba client requesting encryption vulnerable to downgrade attack.

Alerts:
SUSE SUSE-SU-2016:0164-1 samba 2016-01-19
CentOS CESA-2016:0010 samba4 2016-01-07
CentOS CESA-2016:0006 samba 2016-01-07
CentOS CESA-2016:0011 samba 2016-01-07
CentOS CESA-2016:0009 libldb 2016-01-07
CentOS CESA-2016:0009 libldb 2016-01-07
Oracle ELSA-2016-0010 samba4 2016-01-07
Oracle ELSA-2016-0006 samba 2016-01-07
Oracle ELSA-2016-0011 samba 2016-01-07
Scientific Linux SLSA-2016:0010-2 samba4 2016-01-08
Scientific Linux SLSA-2016:0011-1 samba 2016-01-08
Scientific Linux SLSA-2016:0006-1 samba 2016-01-08
Scientific Linux SLSA-2016:0009-1 libldb 2016-01-08
Red Hat RHSA-2016:0010-02 samba4 2016-01-07
Red Hat RHSA-2016:0011-01 samba 2016-01-07
Red Hat RHSA-2016:0006-01 samba 2016-01-07
Red Hat RHSA-2016:0009-01 libldb 2016-01-07
Ubuntu USN-2855-1 samba 2016-01-05
Ubuntu USN-2856-1 ldb 2016-01-05
SUSE SUSE-SU-2016:0032-1 samba 2016-01-05
Debian-LTS DLA-379-1 samba 2016-01-03
Debian DSA-3433-1 samba 2016-01-02
Fedora FEDORA-2015-0e0879cc8a samba 2015-12-26
openSUSE openSUSE-SU-2015:2356-1 samba, ldb, talloc, tdb, tevent 2015-12-24
openSUSE openSUSE-SU-2015:2354-1 ldb, samba, talloc, tdb, tevent 2015-12-24
Gentoo 201612-47 samba 2016-12-24
SUSE SUSE-SU-2016:1105-1 samba 2016-04-19
openSUSE openSUSE-SU-2016:1107-1 samba 2016-04-20
openSUSE openSUSE-SU-2016:1106-1 samba 2016-04-20
openSUSE openSUSE-SU-2016:1064-1 samba 2016-04-17
Debian DSA-3514-1 samba 2016-03-12
Mageia MGASA-2016-0094 samba 2016-03-03
Ubuntu USN-2855-2 samba 2016-02-16
SUSE SUSE-SU-2015:2305-1 ldb, samba, talloc, tdb, tevent 2015-12-18
SUSE SUSE-SU-2015:2304-1 ldb, samba, talloc, tdb, tevent 2015-12-18
Fedora FEDORA-2015-b36076d32e samba 2015-12-18

Comments (none posted)

sosreport: two vulnerabilities

Package(s):sosreport CVE #(s):CVE-2014-3925 CVE-2015-7529
Created:December 18, 2015 Updated:February 17, 2016
Description: From the Ubuntu advisory:

Dolev Farhi discovered an information disclosure issue in SoS. If the /etc/fstab file contained passwords, the passwords were included in the SoS report. This issue only affected Ubuntu 14.04 LTS. (CVE-2014-3925)

Mateusz Guzik discovered that SoS incorrectly handled temporary files. A local attacker could possibly use this issue to overwrite arbitrary files or gain access to temporary file contents containing sensitive system information. (CVE-2015-7529)

Alerts:
Fedora FEDORA-2015-84b1635e90 sos 2015-12-28
Scientific Linux SLSA-2016:0188-1 sos 2016-02-16
Oracle ELSA-2016-0188 sos 2016-02-16
CentOS CESA-2016:0188 sos 2016-02-17
Red Hat RHSA-2016:0188-01 sos 2016-02-16
Scientific Linux SLSA-2016:0152-1 sos 2016-02-09
Oracle ELSA-2016-0152 sos 2016-02-09
CentOS CESA-2016:0152 sos 2016-02-10
Red Hat RHSA-2016:0152-01 sos 2016-02-09
Ubuntu USN-2845-1 sosreport 2015-12-17

Comments (none posted)

subversion: code execution

Package(s):subversion CVE #(s):CVE-2015-5343
Created:December 17, 2015 Updated:April 6, 2016
Description: From the Debian advisory:

Ivan Zhakov discovered an integer overflow in mod_dav_svn, which allows an attacker with write access to the server to execute arbitrary code or cause a denial of service.

Alerts:
Mageia MGASA-2015-0490 subversion 2015-12-28
openSUSE openSUSE-SU-2015:2363-1 subversion 2015-12-25
openSUSE openSUSE-SU-2015:2362-1 subversion 2015-12-25
Fedora FEDORA-2015-afdb0e8aaa subversion 2015-12-22
Slackware SSA:2016-097-01 subversion 2016-04-05
Fedora FEDORA-2015-6efa349a85 subversion 2016-02-29
Debian DSA-3424-1 subversion 2015-12-16

Comments (none posted)

subversion: code execution

Package(s):subversion CVE #(s):CVE-2015-5259
Created:December 23, 2015 Updated:December 23, 2015
Description: From the Red Hat bugzilla:

Subversion servers and clients are vulnerable to a remotely triggerable heap-based buffer overflow and out-of-bounds read caused by an integer overflow in the svn:// protocol parser.

This allows remote attackers to cause a denial of service or possibly execute arbitrary code under the context of the targeted process.

Alerts:
Gentoo 201610-05 subversion 2016-10-11
Fedora FEDORA-2015-afdb0e8aaa subversion 2015-12-22
Fedora FEDORA-2015-6efa349a85 subversion 2016-02-29

Comments (none posted)

tryton-server: access check bypass

Package(s):tryton-server CVE #(s):CVE-2015-0861
Created:December 17, 2015 Updated:December 23, 2015
Description: From the Debian advisory:

Cédric Krier discovered a vulnerability in the server-side of Tryton, an application framework written in Python. An aunthenticated malicious user can write arbitrary values in record fields due missed checks of access permissions when multiple records are written.

Alerts:
Debian DSA-3425-1 tryton-server 2015-12-17

Comments (none posted)

xen: multiple vulnerabilities

Package(s):xen CVE #(s):CVE-2015-8338 CVE-2015-8339 CVE-2015-8340 CVE-2015-8341
Created:December 17, 2015 Updated:December 23, 2015
Description: From the Fedora advisory:

Bug #1285350 - xen: Virtual Performance Measurement Unit feature is unsupported https://bugzilla.redhat.com/show_bug.cgi?id=1285350

Bug #1284933 - CVE-2015-8341 xen: libxl leak of PV kernel can cause OOM condition https://bugzilla.redhat.com/show_bug.cgi?id=1284933

Bug #1284919 - CVE-2015-8339 CVE-2015-8340 xen: XENMEM_exchange error handling may cause DoS to host https://bugzilla.redhat.com/show_bug.cgi?id=1284919

Bug #1284911 - CVE-2015-8338 xen: Long running memory operations on ARM cause DoS https://bugzilla.redhat.com/show_bug.cgi?id=1284911

Alerts:
Debian DSA-3633-1 xen 2016-07-27
openSUSE openSUSE-SU-2016:0126-1 xen 2016-01-14
openSUSE openSUSE-SU-2016:0124-1 xen 2016-01-14
openSUSE openSUSE-SU-2016:0123-1 xen 2016-01-14
Debian-LTS DLA-479-1 xen 2016-05-18
Gentoo 201604-03 xen 2016-04-05
Debian DSA-3519-1 xen 2016-03-17
SUSE SUSE-SU-2016:0658-1 Xen 2016-03-04
Mageia MGASA-2016-0098 xen 2016-03-07
Fedora FEDORA-2015-08e4af5a20 xen 2015-12-20
Fedora FEDORA-2015-12a089920e xen 2015-12-17

Comments (none posted)

xen: two vulnerabilities

Package(s):xen CVE #(s):CVE-2015-8554 CVE-2015-8555
Created:December 23, 2015 Updated:December 23, 2015
Description: From the Red Hat bugzilla:

1289129: "qemu-xen-traditional" (aka qemu-dm) tracks state for each MSI-X table entry of a passed through device. This is used/updated on (intercepted) accesses to the page(s) containing the MSI-X table.

There may be space on the final page not covered by any MSI-X table entry, but memory for state tracking is allocated only for existing table entries. Therefore bounds checks are required to avoid accessing/corrupting unrelated heap memory. Such a check is present for the read path, but was missing for the write path.

A malicious administrator of a guest which has access to a passed through PCI device which is MSI-X capable can exploit this vulnerability to take over the qemu process, elevating its privilege to that of the qemu process.

In a system not using a device model stub domain (or other techniques for deprivileging qemu), the malicious guest administrator can thus elevate their privilege to that of the host. (CVE-2015-8554)

1289130: When XSAVE/XRSTOR are not in use by Xen to manage guest extended register state, the initial values in the FPU stack and XMM registers seen by the guest upon first use are those left there by the previous user of those registers.

A malicious domain may be able to leverage this to obtain sensitive information such as cryptographic keys from another domain. (CVE-2015-8555)

Alerts:
SUSE SUSE-SU-2016:1745-1 xen 2016-07-06
openSUSE openSUSE-SU-2016:0126-1 xen 2016-01-14
openSUSE openSUSE-SU-2016:0124-1 xen 2016-01-14
openSUSE openSUSE-SU-2016:0123-1 xen 2016-01-14
Fedora FEDORA-2015-c44bd3e0fa xen 2016-01-02
Fedora FEDORA-2015-d8253e2b1d xen 2015-12-22
SUSE SUSE-SU-2016:1318-1 xen 2016-05-17
Debian-LTS DLA-479-1 xen 2016-05-18
SUSE SUSE-SU-2016:1154-1 xen 2016-04-26
SUSE SUSE-SU-2016:0955-1 xen 2016-04-05
Gentoo 201604-03 xen 2016-04-05
SUSE SUSE-SU-2016:0873-1 xen 2016-03-24
Debian DSA-3519-1 xen 2016-03-17
SUSE SUSE-SU-2016:0658-1 Xen 2016-03-04
Mageia MGASA-2016-0098 xen 2016-03-07

Comments (none posted)

xsupplicant: insecure temporary files

Package(s):xsupplicant CVE #(s):
Created:December 21, 2015 Updated:December 23, 2015
Description: From the Red Hat bugzilla:

It was found that xsupplicant uses hardcoded fixed temporary file for sockets, storing into /tmp/xsupplicant.sock.$INTERFACE.

Alerts:
Fedora FEDORA-2015-020f4b9400 xsupplicant 2015-12-20
Fedora FEDORA-2015-7229638357 xsupplicant 2015-12-19

Comments (none posted)

Page editor: Jake Edge

Kernel development

Brief items

Kernel release status

The current development kernel is 4.4-rc6, released on December 20. Linus said: "Things remain fairly normal. Last week rc5 was very small indeed, this week we have a slightly bigger rc6. The main difference is that rc6 had a network pull in it."

Stable updates: none have been released in the last week.

Comments (none posted)

Quote of the week

In A.D. 1582 Pope Gregory XIII found that the existing Julian calendar insufficiently represented reality, and changed the rules about calculating leap years to account for this. Similarly, in A.D. 2013 Rockchip hardware engineers found that the new Gregorian calendar still contained flaws, and that the month of November should be counted up to 31 days instead. Unfortunately it takes a long time for calendar changes to gain widespread adoption, and just like more than 300 years went by before the last Protestant nation implemented Greg's proposal, we will have to wait a while until all religions and operating system kernels acknowledge the inherent advantages of the Rockchip system. Until then we need to translate dates read from (and written to) Rockchip hardware back to the Gregorian format.
Julius Werner

Comments (none posted)

Kernel development news

An (unsigned) long story about page allocation

By Jonathan Corbet
December 23, 2015
The kernel project is famously willing to change any internal interface as needed for the long-term maintainability of the code. Effects on out-of-tree modules or other external code are not generally deemed to be reasons to keep an interface stable. But what happens if you want to change one of the oldest interfaces found within the kernel — one with many hundreds of call sites? It turns out that, in 2015, the appetite for interface churn may not be what it once was.

If one looks at mm/memory.c in the Linux 0.01 release, one finds that a page of memory is allocated with:

    unsigned long get_free_page(void);

From the memory-management point of view, the system's RAM can be seen as a linear array of pages, so it can make a certain amount of sense to think of addresses as integer types — indexes into the array, essentially. Integers can also be used for arbitrary arithmetic; pointers in C can be used that way too, but one quickly gets into "undefined behavior" territory where an overly enthusiastic compiler may feel entitled to create all kinds of mayhem. So unsigned long was established as the return type from get_free_page() and, in general, as the way that one refers to an address that may appear in any place in memory.

Fast-forward to the 4.4-rc6 release and dig through a rather larger body of code, and one finds that pages are allocated with:

    unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order);
    unsigned long __get_free_page(gfp_t gfp_mask);

The latter is a macro calling the former with an order of zero. Note that, more than 24 years after the 0.01 release, unsigned long is still used as the return type from __get_free_pages(). There are other variants (alloc_pages(), for example) that return struct page pointers, but much of low-level, page-oriented memory management in Linux is still done with unsigned long values.

The only problem is that, often, the kernel must deal with a page of memory as memory, modifying its contents. That requires a pointer. So even back in 0.01, one can find code like:

    p = (struct task_struct *) get_free_page();

The unsigned long return value is immediately cast into the pointer value that is actually needed. Al Viro did a survey of __get_free_pages() users in current kernels and concluded that "well above 90%" of the callers were using the return value as a pointer. That turns out to be a lot of casts, suggesting that the type of the return value for this function is not correct. So, he suggested, it might make sense to change it:

In other words, switching to void * for return values of allocating and argument of freeing functions would reduce the amount of boilerplate quite nicely. What's more, fewer casts means better chance for typechecking to catch more bugs.

Some of those bugs, he pointed out, he found simply by looking at the code with this kind of transformation in mind. Ten days later, he showed up with a patch set making the change and asked for a verdict from Linus.

One might find various faults with Linus's response, but a lack of clarity will not be among them. He left no doubt that there was no place in the mainline for this particular patch set. The diffstat in Al's patch (568 files changed, 1956 insertions, 2202 deletions) was clearly frightening — enough, in its own right, to rule out the change. A patch this wide-ranging would create conflicts throughout the tree and make life difficult for those backporting patches. This interface, it seems, is too old and too entrenched for this kind of flag-day change; as Linus put it: "No way in hell do we suddenly change the semantics of an interface that has been around from basically day #1."

Still, as he clarified afterward, Linus isn't arguing for leaving everything exactly as it is. He accepted that most callers likely want a pointer value. But the way forward isn't to thrash up an interface like __get_free_pages(); instead, there are two approaches that, he said, could be taken.

The first of these would be to create a new, pointer-oriented interface that exists in parallel with __get_free_pages(). Then call sites could be converted at leisure over the course of what would probably be years.

The alternative, Linus said, is that code needing pointers could just allocate memory with kmalloc() instead. Once upon a time, that would not necessarily have been a good idea, since kmalloc() (implemented by the slab allocators) adds overhead to the page allocator and might have expanded the size of the returned memory beyond one page. Indeed, there was a period where an allocation of exactly one page would have consumed two physically contiguous pages when the slab housekeeping information was added. But those days are long in the past. In current kernels, kmalloc() is fast and requires little memory beyond that which is actually allocated. Indeed, Linus pointed out, kmalloc() may actually be faster than __get_free_pages() due to its use of per-CPU object caches.

So kmalloc() is probably the best option for many of the call sites currently using __get_free_pages(). The places where it is still inappropriate will be those needing multiple-page allocations and those needing allocations that are not only page-sized but page-aligned. In those cases, Linus said, the unsigned long return type might not be a bad thing, since "it's clearly not just a random pointer allocation if the bit pattern of the pointer matters."

After this discussion took place, Al did a pass over the __get_free_pages() call sites in the filesystem code and concluded that almost all of them truly would would be better off using kmalloc(). So the end result of this work may be a slow shift in that direction and, perhaps, the creation of a new document telling kernel developers which memory allocator they should be using in which setting.

Comments (10 posted)

Two PaX features move toward the mainline

By Jake Edge
December 23, 2015

As the Kernel self-protection project (KSPP) ramps up in the month and a half since its formation, several features from the PaX project are starting their journey toward the mainline. The reception on the kernel-hardening mailing list that is being used to coordinate KSPP work has been positive, but the real test for these features will come when they are proposed for the mainline. Two specific patch sets have been posted recently, for PAX_REFCOUNT and PAX_MEMORY_SANITIZE, that we will look at here.

PAX_REFCOUNT

The idea behind the PAX_REFCOUNT patch set, posted by David Windsor, is to detect and handle overflows in reference-count variables. The kernel uses reference counts to track objects that have been allocated, incrementing or decrementing the count as references to them come and go; the kernel frees those objects when the count reaches zero. But if there is a path in the kernel where the count doesn't get decremented when an object reference gets dropped, an attacker could use that path to overflow and wrap the reference counter, effectively setting it to zero when there are actually still valid references to it. The object will be freed, but will still be used by those with references, leading to a use-after-free vulnerability.

This is not the first attempt to add this kind of overflow protection to the kernel. But when Windsor posted about a related idea for kref, which is a kernel abstraction for reference counts, back in 2012, the idea ran aground on how it handled the overflows. Like the original PaX patches, Windsor's patch would call BUG_ON() for reference counts that reached INT_MAX, instead of incrementing them. That would crash the kernel if the count ever reaches INT_MAX, which Greg Kroah-Hartman objected to:

So you are guaranteeing to crash a machine here if this fails? And you were trying to say this is a "security" based fix?

And people wonder why I no longer have any hair...

But as Windsor and others pointed out, there is no sensible recovery that can be done if a reference count is about to wrap. An alternative might be to simply not change the counter (and put a warning into the kernel log) once it reaches INT_MAX, but that would lead to a memory leak. Overall, at least at the time, Kroah-Hartman was clearly skeptical of the whole idea—or even that a kref wrap could be exploited. However, Kees Cook did describe the way an exploit might work:

Based on what I've seen, the "normal" exploit follows this pattern:

user1: alloc(), inc
user2: inc
user2: fail to dec
*repeat user2's actions until wrap*
user3: inc
user3: dec, free()
user1: operate on freed memory zomg

In the recent posting of PAX_REFCOUNT, Windsor has essentially broken up the PaX project's patches and applied them to the 4.2.6 stable kernel, though he is working on rebasing on linux-next. He noted a post on the grsecurity forums where the feature is well documented. The implementation changes the kernel's operations on atomic_t types so that overflows cannot occur; increments beyond INT_MAX are disallowed. In addition, processes that would have caused an overflow are sent a SIGKILL so that they can do no further damage. Windsor suggested that the signal might be too severe to start with:

When an overflow is detected, SIGKILL is sent to the offending process. This may be too drastic for an initial upstream submission. WARN_ON may be more appropriate until distros have some time to absorb it and report any unaddressed overflows.

The patches also create an atomic_unchecked_t type that acts just like today's atomic_t; it does no checking for overflow. In fact, the bulk of the patches are to various subsystems that use atomic variables but don't use them as reference counts; they are switched to use the new unchecked type. If the patches get merged, new users of atomic variables will need to determine if they are being used as reference counts or not to choose the proper atomic type.

So far, the comments on the patches have been light, but one suspects the code churn needed to switch all of those atomic types will bring some complaints when the patches get posted more widely. One could imagine creating a new type for those variables that need the checking, but that would require constant vigilance to ensure that any reference counts added to the kernel actually used the new type. That problem still exists with the posted patches, however, since new atomic_unchecked_t variables will need to be scrutinized to see that they aren't being used as reference counts.

PAX_MEMORY_SANITIZE

One way to mitigate the effect of use-after-free vulnerability or to stop various information leaks is to "sanitize" memory that is being freed by writing zeroes or some other constant value to it. That is the idea behind the PAX_MEMORY_SANITIZE feature. Laura Abbott posted a partial port of the feature to kernel-hardening on December 21.

In particular, Abbott's patches add the sanitization to the slab allocators (slab, slob, and slub), but not for the buddy allocator as the full PAX_MEMORY_SANITIZE feature does. That means "that allocations which go directly to the buddy allocator (i.e. large allocations) aren't sanitized". The actual sanitization is done using a fixed value (0xff for all architectures except x86-64, which uses 0xfe) that is written over the entire object before it is freed. Abbott plans to look into adding sanitization to the buddy allocator sometime in the new year. Another change that Abbott made to the PaX version of the feature was to add an option to handle the sanitization in the slow path of the allocator.

Christoph Lameter complained that the feature was similar to the slab-poisoning feature, so it should use that mechanism instead. Abbott agreed that the features were similar, but said that poisoning is a debug feature and this work is targeting kernel hardening so "it seemed more appropriate to keep debug features and non-debug features separate hence the separate option and configuration".

The cost of sanitization is performance, of course. Abbott said she measured impacts of 3-20% depending on the benchmark. But the impact of compiling the feature into the kernel, but turning it off at runtime (using the sanitize_slab=off boot option), is negligible.

Lameter also suggested using the GFP_ZERO flag to make allocations be zeroed before being returned. If there were a mode that set that flag for all allocations it would provide "implied sanitization". But doing it that way would move the performance impact from the free path to the allocation side, which is typically more performance sensitive, as Dave Hansen pointed out. It also means that unallocated memory would still store the potentially sensitive contents of the previous object until it is allocated again.

Instead of writing the fixed sanitization value across the object, writing zeroes would potentially allow the allocation path to skip the zeroing step, Hansen suggested. That might reduce some of the performance impact, though doing the zeroing at allocation time does leave the object's memory cache-hot, as Lameter noted. But zeroing has another downside that Abbott mentioned:

poisoning with non-zero memory makes it easier to determine that the error came from accessing the sanitized memory vs. some other case. I don't think the feature would be as strong if the memory was only zeroed vs. some other data value.

Overall, both patches were fairly well-received, but the hardening list is likely made up of those who are predisposed to look favorably on these kinds of changes. Based on discussions at last year's Kernel Summit, mainline developers should in theory be more receptive to patches that seek to mitigate whole classes of security bugs. If these PaX features can get merged eventually, there are some even more intrusive ones that could also attempt to run the gauntlet of the linux-kernel mailing list. Just where the line is—or even if there is one—is still unclear, but patches like these may help define it.

Comments (4 posted)

Some 4.4 development statistics

By Jonathan Corbet
December 23, 2015
The 4.4-rc6 kernel prepatch was released on December 20, right on schedule. The 4.4 development series as a whole appears to be on schedule, with the most probable release date for 4.4 final being January 3, after one more prepatch. Linus has suggested that he might delay the release for one week. Any such delay, though, would be to allow developers to recover from the holidays before starting a new merge window rather than anything needed to stabilize 4.4.

So, naturally, it is about time to look at this cycle's development activity. As of this writing, there have been 12,854 non-merge changesets pulled into the mainline this time around. It has thus been a busy cycle, though it would be surprising if we reached the number of changes seen in 4.2 (13,694), or the all-time record (13,722) set for 3.15.

The number of developers involved thus far is 1,548 — a large number, but slightly short of the 1,600 seen in 4.3. We may yet reach the 1,569 seen in the 4.2 cycle, though. Of those 1,548 contributors, 246 made their first kernel contribution in this development cycle — the lowest number since 3.13. The most active developers this time around were:

Most active 4.4 developers
By changesets
H Hartley Sweeten2882.2%
Mateusz Kulikowski2181.7%
Chaehyun Lim1791.4%
Leo Kim1671.3%
Eric W. Biederman1631.3%
Shraddha Barke1471.1%
Ville Syrjälä1441.1%
Arnd Bergmann1431.1%
Eric Dumazet1231.0%
Tony Cho1080.8%
Geert Uytterhoeven1050.8%
Glen Lee1050.8%
Russell King1040.8%
Javier Martinez Canillas1010.8%
Sudip Mukherjee960.7%
Christoph Hellwig910.7%
Mike Rapoport910.7%
Oleg Drokin890.7%
Luis de Bethencourt890.7%
Andy Shevchenko820.6%
By changed lines
Alex Deucher322035.0%
Sreekanth Reddy240093.7%
Yuval Mintz206223.2%
Christoph Hellwig156562.4%
huangdaode147252.3%
Michael Chan131372.0%
Lv Zheng98871.5%
Oleg Drokin84341.3%
Deepa Dinamani77971.2%
Jes Sorensen77371.2%
Peter Senna Tschudin76761.2%
Sudeep Dutt68811.1%
Leo Kim66641.0%
Alexander Shishkin66121.0%
Arnd Bergmann58930.9%
Takashi Sakamoto58370.9%
Jiri Pirko53500.8%
Adam Thomson51230.8%
Eric Anholt50410.8%
H Hartley Sweeten50300.8%

After an absence for a few development cycles, H. Hartley Sweeten is back at the top of the per-changeset list for the ongoing work on the Comedi drivers in the staging tree. This code, at just under 100,000 lines, has now seen nearly 8,000 patches — and the work continues. Mateusz Kulikowski worked entirely with the rtl8192e staging driver, while Chaehyun Lim and Leo Kim both fixed up the wilc1000 staging driver. Eric Biederman is engaged in a substantial reworking of how the network stack handles network namespaces, with an emphasis on proper handling of packets that cross namespaces.

On the lines-changed side, Alex Deucher continues to work on the AMD graphics drivers, Sreekanth Reddy removed a bunch of code from the mpt2sas driver (and, as a result, was the developer removing the most code in this cycle), and Yuval Mintz added a couple of Qlogic Ethernet drivers. Christoph Hellwig did a fair amount of cleanup throughout the driver and block subsystems, while huangdaode (the only name that appears in the logs) added support for the Hisilicon network subsystem.

The sum of these developers' effort resulted in the net addition of 242,000 lines of code to the kernel in this development cycle.

Work on 4.4 was supported by 202 employers that we could identify, a slight increase from 4.3. The most active companies working on 4.4 were:

Most active 4.4 employers
By changesets
Intel166012.9%
(Unknown)11398.9%
(None)6845.3%
Samsung6705.2%
Red Hat6555.1%
Atmel4493.5%
Linaro4483.5%
(Consultant)4193.3%
Outreachy4003.1%
IBM3022.3%
Vision Engraving Systems2882.2%
Google2732.1%
SUSE2572.0%
ARM2261.8%
Texas Instruments2101.6%
Freescale2081.6%
Renesas Electronics1901.5%
AMD1771.4%
Oracle1731.3%
Broadcom1691.3%
By lines changed
Intel8539013.3%
(None)370785.8%
AMD363065.6%
Red Hat349375.4%
(Unknown)337395.2%
(Consultant)302714.7%
Avago Technologies270014.2%
QLogic243813.8%
Broadcom193183.0%
Atmel178562.8%
Samsung165082.6%
Linaro161542.5%
HiSilicon Technologies152602.4%
Outreachy127652.0%
Renesas Electronics117451.8%
Mellanox115901.8%
Freescale113921.8%
ARM109861.7%
IBM104021.6%
Texas Instruments103451.6%

For many years, Red Hat stood alone at the top of both columns of this list. That situation has been changing for some time; at this point, it is more than fair to say that Red Hat has ceased to be the most active company in the kernel development community. That is not to slight the company's work, of course; Red Hat still funds many of our most active developers, and those developers, in the subsystem-maintainer role, signed off on 16% of the changes merged this time around. But, at this point, Red Hat is one of a number of top-tier companies working to improve the Linux kernel.

Speaking of signoffs, the most active developers and companies when it comes to signing off patches they did not write are:

Most non-author signoffs in 4.4
Developers
Greg Kroah-Hartman274621.3%
David S. Miller10488.1%
Daniel Vetter4473.5%
Andrew Morton3462.7%
Mark Brown3432.7%
Ingo Molnar2411.9%
Arnaldo Carvalho de Melo2241.7%
Tony Cho2101.6%
Jeff Kirsher2091.6%
Kalle Valo1741.3%
Companies
Linux Foundation276321.6%
Red Hat206016.1%
Intel164912.9%
Linaro8206.4%
Google6024.7%
(None)4593.6%
SUSE3923.1%
Atmel2602.0%
Samsung2602.0%
Facebook2331.8%

The kernel's subsystem maintainers remain concentrated in relatively few companies though, arguably, they are spread out a bit more widely than they once were. While many companies are willing to support kernel development in specific areas, fewer of them see the need to support developers working in the subsystem-maintainer role.

In summary, 4.4, the final kernel development for 2015, looks pretty typical. It was busier than most, but that, too, is typical, given the long-term trend toward larger development cycles. That busyness does not appear set to make this cycle longer than the 63 days that we have come to expect, though. Despite its occasional hiccups, the kernel-development machine continues to run smoothly.

Comments (4 posted)

Patches and updates

Kernel trees

Linus Torvalds Linux 4.4-rc6 ?
Sebastian Andrzej Siewior 4.1.15-rt17 ?
Kamal Mostafa Linux 3.19.8-ckt12 ?
Kamal Mostafa Linux 3.13.11-ckt32 ?

Architecture-specific

Core kernel code

serge.hallyn@ubuntu.com CGroup Namespaces (v8) ?

Development tools

Device drivers

Device driver infrastructure

Filesystems and block I/O

Memory management

Networking

Jarno Rajahalme openvswitch: NAT support. ?
Craig Gallek Faster SO_REUSEPORT ?

Security-related

Virtualization and containers

Miscellaneous

Page editor: Jonathan Corbet

Distributions

Iceweasel for Fedora?

By Jake Edge
December 23, 2015

Mozilla's plan to require all extensions (also known as add-ons) to be signed by Mozilla before they can be installed in Firefox may lead Linux distributions down the same path that Debian has taken—a name change to avoid the Firefox trademark. The problem is that some distributions currently ship extensions that it will be difficult or impossible to get signed. The requirement can also be seen as a form of control over what users can install in their browser, which some see as running counter to the philosophical underpinnings of free software.

A Fedora Engineering Steering Committee (FESCo) bug report has called out the issue for Fedora. Kevin Kofler filed the bug, which calls for blocking any update to Firefox 44 (which will remove the about:config option for signature checking) in fairly strident terms (e.g. the bug is entitled "Software packaged in Fedora should not be allowed to implement DRM schemes that cannot be disabled"). He described the problem this way:

With the release of Firefox 43, Firefox has started refusing by default to load any extensions that are not signed. With the next release, Firefox 44, upstream is even removing the option to load unsigned extensions entirely. This effectively amounts to an iOS-style DRM scheme, disallowing to install any extensions not coming from Mozilla. As a [result], this prevents the user from exercising the fundamental 4 freedoms of Free Software when it comes to Firefox extensions. (It also has the side effect of breaking all Firefox extensions packaged in Fedora, in a way that cannot be fixed without shipping binary blobs, in violation of our policy to build everything from source.) Such a DRM scheme should NOT be allowed in Fedora.

There is a mechanism provided by addons.mozilla.org (which is the site for Firefox extensions as well as for signing the packages) to automate the signing of existing extensions, but it would be quite cumbersome for Fedora to use. It would also leave users who want to install extensions they have built or have obtained in other ways out in the cold.

There are already two bug reports filed for Fedora packages (mozilla-adblockplus and mozilla-https-everywhere) that can't be installed in Firefox 43 without changing the value of xpinstall.signatures.required in about:config. When Firefox 44 comes along in late January, even that workaround won't suffice. But this requirement has been coming for some time; we covered the change back in February.

Others commented on the bug, mostly agreeing with Kofler's assessment. FESCo member Stephen Gallagher suggested that the committee communicate with Mozilla:

I think our first course of action here needs to be that FESCo should craft a formal letter (possibly published publicly) on behalf of the Fedora Project to the Mozilla Foundation that expresses our concern, particularly that we feel that such mandatory DRM likely causes Firefox to cease qualification as "Free Software" and thus suitability for inclusion in Fedora and likely other Free Software operating systems.

Kevin Fenzi, who is also a FESCo member, thought that it was important to include the Firefox package maintainer Martin Stransky into the discussion. As might be guessed, Stransky had a somewhat different view than many of the other commenters. He wondered about the value of Fedora packaging extensions. He also noted the Debian's rebranded Firefox (i.e. Iceweasel) is available in Fedora already, which might be an alternative for those who need it.

Several responded with reasons that Fedora wants or needs to package its own extensions, but there is more to it than that. For one thing, users may be willing to trust Fedora as a source for their extensions, but not Mozilla. There may also be distribution-specific changes that need to be made. As Gallagher put it:

This is valuable because it allows us the ability to ship certain functionality by default that upstream Firefox may not desire (such as Fedora [Workstation]-specific extensions). [Furthermore], there are many users of Fedora that would not assume trust of the Mozilla Foundation that do trust Fedora because our infrastructure is public and possible to inspect. Thus, RPM-provided content may meet a business need that A.M.O [addons.mozilla.org] does not.

[...]

All RPMs distributed by Fedora must be built in the Fedora infrastructure. This is also a trust issue, as it ensures that we are building and shipping a binary that matches the sources (there's no guarantee to our users that the public source matches the binary distributed by A.M.O.). Furthermore, compiled extensions may be built with different flags in order to match the system security policy and these may differ from the upstream build.

Fundamentally it comes down to a question of software freedom, Gallagher concluded. In fact, Dominik "Rathann" Mierzejewski argued that updating Fedora to Firefox 43 without disabling the signature checking by default, as Stransky has done, is a violation of the update guidelines. He suggested updating the Firefox 43 package to disable signature checking and to "NOT update to FF44 in F22 and F23 until this is resolved".

The consensus in the bug is clearly to remove the signature checking by default one way or another. Gallagher suggested prompting users to decide if they want the checking, but even that requires changes to the Firefox code. And that will be the crux of the matter. Mozilla only allows using the Firefox trademark for modified versions of the browser if it approves of those changes. Concern about that trademark policy (and getting Mozilla's approval for every patch) is what led Debian to switch to Iceweasel. Kofler explicitly suggested that Fedora do the same.

Ultimately it will be up to Mozilla, as it can choose to allow distributions to remove the signature checking (or provide a way to disable it) or not. If it sticks to its guns and "forces" distributions to leave that part of the Firefox code alone, it may well push more Linux users into installing Iceweasel or the like, because that is what their distribution provides. At some point, FESCo will undoubtedly discuss the issue, but it is hard to see how the conflicts between the freedoms inherent in free software and a lockdown regime such as that being pushed by Mozilla (however well-intentioned) can coexist. Something has to give—if it isn't Mozilla, then replacing Firefox in Fedora with Iceweasel may not be far behind.

Comments (12 posted)

Brief items

Distribution quote of the week

Do you want to see this fixed?
Are you willing to do the fixing yourself?

If the answer to the first question is yes, and the second is no, then you've just volunteered for the job of either community motivator, or frustrated user. The goal then is to make people care more about going out of their way to fix things than going out of their way to find ways to make you even more frustrated. Which do you think is going to be more emotionally satisfying to those who read this thread?

-- Rich Freeman

Comments (none posted)

Release for CentOS AltArch 7 (1511) on x86_64

CentOS has released version 7 (1511) for several alternate architectures, including i686 and Armhfp. Technology previews are also available for PowerPC64 and PowerPC8 LE.

Full Story (comments: none)

FreedomBox 0.7 Released

FreedomBox 0.7 has been released, with new translations, support for OLinuXino A20 MICRO and LIME2, new Plinth applications: OpenVPN, reStore, improved first-boot experience, and, of course, many bugfixes and cleanups.

Comments (none posted)

Distribution News

Debian GNU/Linux

Debian LTS: MySQL 5.5 packages added; end of support for MySQL 5.1

MySQL 5.1, included with Debian 6.0 (squeeze), is no longer supported. MySQL 5.5 packages are available and users are encouraged to upgrade.

Full Story (comments: none)

Newsletters and articles of interest

Distribution newsletters

Comments (none posted)

Android on the desktop: Not really “good,” but better than you’d think (Ars Technica)

Ars Technica reports that Google has plans to bring Android to desktops and laptops. "We've Frankensteined together a little Android desktop setup using a Nexus 9 and a USB keyboard and mouse to see just how easy—or complicated—it was to use what is still formally a "mobile" operating system in a desktop context today, right now, without complicated changes or reconfigurations. It worked, but Android still has a ways to go before it can be called a real desktop operating system—quite a ways, in some cases. The biggest affordance Android makes for a desktop OS is that it supports a keyboard and mouse. Any Android device can pair with a Bluetooth mouse and keyboard, and if you want to go the wired route, just about any phone can plug in a mouse and keyboard via a USB OTG cable and a USB hub. Some OEMs even build Android devices with a keyboard and mouse, like the Asus Transformer series, which is a convertible laptop that runs Android."

Comments (17 posted)

Review: Mint 17.3 may be the best Linux desktop distro yet (Ars Technica)

Ars Technica finds plenty to like in Linux Mint 17.3. "The developers of Linux Mint have shown that they have the vision and are willing to put in the actual work to produce one the best desktop experiences around. The Cinnamon edition is not just the most polished Linux desktop around, it's possibly the most polished desktop period. Hyperbolic? Perhaps a little, but this really is the most thoroughly thought-out desktop I've ever used, Linux or otherwise."

Comments (none posted)

Kirkland: More people use Ubuntu than anyone actually knows

Dustin Kirkland feels that Ubuntu users have been undercounted, and so has put together a census of his own. "Ever watch a movie on Netflix? You were served by Ubuntu. Ever hitch a ride with Uber or Lyft? Your mobile app is talking to Ubuntu servers on the backend. Did you enjoy watching The Hobbit? Hunger Games? Avengers? Avatar? All rendered on Ubuntu at WETA Digital." In the end, he says, there are over one billion Ubuntu users.

Comments (30 posted)

Page editor: Rebecca Sobol

Development

Deprecating XUL for WebExtensions

By Nathan Willis
December 23, 2015

Mozilla first unveiled plans to revamp the development framework offered to extension authors in August, announcing that it would deprecate XUL and XPCOM in favor of an API based on JavaScript. That API, called WebExtensions, is now available to developers in the Firefox Nightly channel. The stable release is scheduled to arrive in mid-2016, and add-ons using the API should also be usable as extensions for the Chrome and Opera browsers.

XUL is the XML-based user-interface markup language used to define windows, menus, interface widgets, and other components in Firefox, Thunderbird, and a few other Mozilla projects. XPCOM is the corresponding component model, providing access to the various libraries that make up the application (networking, security, rendering engine, etc.). Both are well over a decade old and, while it could be argued that they have served their purposes well, they are integral enough to the structure of Firefox that they make it difficult to maintain a clear separation between the browser internals and third-party add-ons.

That has serious security implications, of course, and it also makes browser extensions rather brittle—susceptible to breakage when there are minor changes to the browser code itself. Meanwhile, Google's Chrome/Chromium (and the Opera browser, which also uses Chrome's Blink engine) have both found success attracting extension developers with the JavaScript-based Chrome extension APIs. By mirroring those APIs where possible, Mozilla believes it can attract new extension developers as well as enable many Chrome extensions to work in Firefox with a minimal amount of porting effort.

WebExtensions is Mozilla's name for the new API. It is worth noting that Mozilla terminology uses "API" in the singular, while Chrome's refers to same set of interfaces as APIs, plural. But this is purely semantics, just like how Mozilla refers to extensions, plugins, and themes, collectively, as "add-ons," while Chrome calls everything "extensions." There are more than 60 APIs defined for Chrome's extensions, with more constantly under development. They include everything from hooks to build user-interface elements to security features to the manipulation of page contents. Mozilla has set up a feature-tracking page for its implementation at AreWeWebExtensionsYet.com that lists the completion status for each API and links to open bugs and relevant documentation.

A WebExtension consists of JavaScript files bundled together with a JSON manifest file and any necessary resource files. WebExtensions can run background-process scripts as well as user-visible scripts (such as those that add to the browser interface or modify page content). WebExtensions will be subjected to the same security tests and signing rules imposed on extensions using the existing APIs. They will also retain the .xpi file extension, despite the internal differences with current add-ons. There are a few example extensions available as well.

Currently, the plan is on track for Firefox 45 (which is the series currently in the Nightly channel and which will become the stable Firefox release in March 2016) to fully support the contextMenus, browserAction, pageAction, and alarms APIs. The browserAction API allows an extension to place a button or icon on the toolbar; pageAction allows an extension to place one in the location bar. Like the name implies, contextMenus lets extensions add items to the right-click context menu, while alarms lets extensions schedule tasks. It is a rather small set of features; the plan announcement also noted that there should be "a bunch of partially supported APIs" available as well, including those used to access bookmarks, cookies, storage, and outgoing HTTP requests.

Ideally, the full set of WebExtensions APIs will be available as an experimental feature with the release of Firefox 47 (slated for release at the end of May 2016), and as a stable feature in Firefox 48 (July 2016). That said, even though the advertised goal of the project is to offer an API that closely mirrors that used by the Blink-based browsers, it appears that there will always be some differences.

The Mozilla wiki lists the interfaces that differ from those in the Chrome APIs. In some cases, the likelihood is that Mozilla will never implement the full Chrome API because it is bound too tightly to Google services. For example, in Chrome, the storage API (which is on the list to be partially supported for Firefox 45) supports not only the W3C localStorage standard, but Chrome's built-in cloud synchronization service and an enterprise "managed storage" policy. The Firefox implementation supports only localStorage.

There are other APIs where Firefox and Chrome will vary due to higher-level behavioral or policy differences. For example, Chrome provides separate cookie stores for each incognito tab, and the cookies API allows extensions to access those cookies as well as cookies from the standard browser store. Firefox's private-browsing mode, which is the nearest equivalent of incognito tabs, does not allow extensions to access the private-mode cookies at all. And there may still be additions to the WebExtensions API to provide access to Firefox-only features; the Mozilla wiki notes that Firefox supports special bookmarks like the "Recently Bookmarked" and "Recently Visited" folders that have no Chrome API equivalent.

In the future, though, Mozilla does seem to be aiming to maintain compatibility between the APIs where possible. No doubt that will be seen as a plus when marketing the API to Chrome or Opera extension developers. Even if some porting effort is required, it will be substantially lower than the costs of learning XUL and XPCOM.

Further out, Mozilla has several major changes lined up for Firefox, including the Servo rendering engine and the Electrolysis multi-process model. The August announcement of WebExtensions noted that reliance on XUL and XPCOM was an impediment to implementing both of those plans. The WebExtensions API implementation is explicitly designed to be Electrolysis-compatible.

Since they are being positioned to supplant XUL-based extensions entirely, WebExtensions will also be supported by Mozilla's Add-ons repository service. The developer documentation for the new API, which is still under construction, notes that currently WebExtensions can only be installed locally in Firefox Developer Edition or in Nightly builds. As the roll-out process continues, though, developers will be able to submit WebExtensions for testing and distribution through the Add-ons site. The announcement post that set out the timeline for WebExtensions' availability estimates that the Add-ons site will be ready for the new format by the time Firefox 44 is released—late January 2016.

If everything comes together as planned, then, extension developers can begin experimenting with the new API immediately, with an eye toward making their work available to early adopters in March. Migrating to an entirely new API can certainly seem like a daunting proposition, even if there is half a year between now and when the new API is scheduled to be declared stable. But much of that risk is mitigated by Mozilla's choice to adhere to the battle-tested interfaces used by Chrome and the other Blink-based browsers.

It is a gamble for Mozilla, one that may raise the ire of longstanding extension developers, but the move is well warranted given the long-term goals of work like Electrolysis and Servo. It is less clear whether adopting the same APIs used by Chrome will foster any cooperation on future extension development between Mozilla and the Chrome team, but at least Mozilla will have a seat at the table for such discussions—if it succeeds in bringing a sizeable number of extension developers along.

Comments (8 posted)

Brief items

Quotes of the week

One way or another you have to decide: are you going to wrap your lines with newlines? And of course the answer should be "yes" because lines that trail all the way off the edge of your terminal is a sin against the plaintext gods, who are deceptively mighty, and whose wrath is to be feared (and blessings to be embraced).
Chris Webber ponders the theological implications of line-wrapping.

There are times when combining two implementations into one would cause more complexity for the system as a whole or violate the Single Responsibility Principle. For example, if your system’s representation of a Car and a Person have some slightly similar code, don’t solve this “problem” by combining them into a single CarPerson class.
Max Kanat-Alexander on code simplicity.

Just then the scene faded and they were returned to the server room of today, a drab place that had no joy or good ideas anywhere you looked.

"Sigh, there are going to be two more of these bozos who come tonight I suppose. I probably won't get anything done. This will be worse than end of quarter."

Josh Bressers channels Dickens.

Comments (none posted)

First Plasma Wayland Live Image (KDE.News)

Over at KDE.News, Jonathan Riddell has announced the availability of the first live image [1.2GB ISO] of the KDE Plasma desktop running atop Wayland. "The central component in this is our window manager, KWin, which has moved from drawing borders on the edges of windows to running the full compositor and talking the Wayland protocols which allow applications to draw on screen and be interacted with. Users of the image will notice some obvious glitches, it is certainly not ready for everyday use yet, but the advantages of more secure workspaces, easier feature extendibility and graphics free of tearing and gitches will be appreciated by everybody. Work on this has been ongoing since 2011 and is expected to take years rather than months before a completely transparent switch away from X will be possible. Find more about the project on the KWin Wayland wiki pages."

Comments (32 posted)

FreeType 2.6.2 released

FreeType 2.6.2 is now available, introducing several text-rendering changes that may be of interest to developers and users. Among them are a new default for LCD subpixel rendering and changes to hinting behavior. First, setting hinting to "slight" in Fontconfig now triggers the platform's native hinter if possible. "This decision was driven by my personal whim; I wanted native vertical grid-fitting if the font driver and font supports it, and the auto-hinter otherwise. I assume that native hints are made more carefully and take the (auto-hinting) guesswork out of the process. Instead of introducing per-format configuration in FontConfig and fighting GTK[3]/GNOME[4] that only support a single global hinting setting, it was found to make more sense to change the definition of light hinting in FreeType." Second, there is new, experimental support for stem-darkening in the FreeType auto-hinter, which works around the fact that Linux toolkits do not properly render glyphs onto the background using linear blending and gamma correction. The upshot will be that vertical stems now look somewhat darker on Linux, more accurately matching the font rendering on other platforms.

Full Story (comments: 8)

MediaWiki 1.26 released

Version 1.26 of the MediaWiki platform that powers Wikipedia and many other wiki sites has been released. Performance improvements were the focus for this cycle, notes the announcement: "All JavaScript is now delivered to the client asynchronously, significantly improving the page load time. Due to performance issues in the old implementation, syntax highlighting support was completely overhauled using the Python 'Pygments' library, and added support for several hundred new languages at the same time." In addition, a long-planned overhaul of the authentication code began in this release with the deprecation of old authentication-layer functionality.

Comments (none posted)

WebExtensions in Firefox 45

The Mozilla Add-ons blog takes a look at the work going on around the WebExtensions API. "WebExtensions is currently in an alpha state, so while this is a great time to get involved, please keep in mind that things might change if you decide to use it in its current state. Since August, we’ve closed 77 bugs and ramped up the WebExtensions team at Mozilla. With the release of Firefox 45 in March 2016, we’ll have full support for the following APIs: alarms, contextMenus, pageAction and browserAction. Plus a bunch of partially supported APIs: bookmarks, cookies, extension, i18n, notifications, runtime, storage, tabs, webNavigation, webRequest, windows."

Comments (none posted)

ReText 5.3 available

Version 5.3 of the ReText editor for Markdown documents has been released. New in this update is drag-and-drop support for reordering tabs, a document-preview mode, and fully configurable syntax-highlighting colors.

Comments (none posted)

Vagrant 1.8 available

Version 1.8 of the Vagrant development-environment configuration tool has been released. New are support for linked clones (which are created by building a differential disk image from the original, rather than duplicating a full disk image), creating and restoring from snapshots, and provisioning Ansible on guest machines.

Comments (none posted)

Newsletters and articles

Development newsletters from the past week

Comments (none posted)

Cannon: Why Python 3 exists

Brett Cannon reminds the world why the Python developers decided to create Python 3 — and acknowledges that the transition could have been done better. "This point of avoiding bugs is a big deal that people forget. The simplification of the language and the removal of the implicitness of what a str object might represent makes code less bug-prone. The Zen of Python points out that 'explicit is better than implicit' for a reason: ambiguity and implicit knowledge that is not easily communicated code is easy to get wrong and leads to bugs. By forcing developers to explicitly separate out their binary data and textual data it leads to better code that has less of a chance to have a certain class of bug."

Comments (58 posted)

Questions about Open Source and Design

At her blog, Emily Dunham reports on her recent conversations with UI and UX developers about why open-source projects struggle with design. From the replies, she identifies several pain points, such as: "Non-designers struggle to give constructive feedback on design. I can say 'that’s ugly' or 'that’s hard to use' more easily than I can say 'here’s how you can make it better'" and: "The tests which designers apply to their work are often almost impossible to automate. For instance, I gather that a lot of user interaction testing involves watching new users attempt to complete a task using a given design, and observing the challenges they encounter." No doubt there are few easy answers, but the conversation is certainly worth pursuing.

Comments (none posted)

Guidelines For Announcing Software Releases

At the Red Hat Community blog, Brian Proffitt has posted a detailed set of best-practice guidelines for release announcements. Among the topics addressed are gathering changelog data for announcements as part of the release process, properly timing announcements to be noticed by the community, and differentiating between the audiences for major, minor, and patch-level updates. Also covered is wording advice: "Avoid hyperbole ("the bestest project ever made!!!" and speculation ("the only project that can do this"). As tempting as it is, release announcements should not [be] opportunities to hype your project." And, of course, it touches on that great unsolved problem of computer science: including a few words in the announcement that mention what the software actually does.

Comments (none posted)

Page editor: Nathan Willis

Announcements

Brief items

Linux Foundation announces project to "advance blockchain technology"

The Linux Foundation has announced a new collaborative project to "develop an enterprise grade, open source distributed ledger framework" to allow developers to build "robust, industry-specific applications, platforms and hardware systems to support business transactions". Twenty companies have joined the effort: Accenture, ANZ Bank, Cisco, CLS, Credits, Deutsche Börse, Digital Asset Holdings, DTCC, Fujitsu Limited, IC3, IBM, Intel, J.P. Morgan, London Stock Exchange Group, Mitsubishi UFJ Financial Group (MUFG), R3, State Street, SWIFT, VMware, and Wells Fargo. "Many of the founding members are already investing considerable research and development efforts exploring blockchain applications for industry. IBM intends to contribute tens of thousands of lines of its existing codebase and its corresponding intellectual property to this open source community. Digital Asset is contributing the Hyperledger mark, which will be used as the project name, as well as enterprise grade code and developer resources. R3 is contributing a new financial transaction architectural framework designed to specifically meet the requirements of its global bank members and other financial institutions. These technical contributions, among others from a variety of companies, will be reviewed in detail in the weeks ahead by the formation and Technical Steering Committees."

Comments (29 posted)

Test Your Online Privacy Protection with EFF’s Panopticlick

The Electronic Frontier Foundation has launched an updated version of its online tracker-testing tool Panopticlick. "When you visit a website, online trackers and the site itself may be able to identify you, and the records of your online activity can then be distributed among a vast network of advertising exchanges, data brokers, and tracking companies. Many people install ad- or tracker-blockers to try to protect themselves, but it can be hard to know how effective they are. Panopticlick will check your browser and your add-ons and assess the privacy protections users have in place. It can also suggest remedies for under-protected browsers. But even if you have strong tracker blocking installed on your computer, you could still be identified by what’s called a “browser fingerprint.” That’s the combination of factors such as your operating system, your browser, and plug-ins. Panopticlick also analyzes the uniqueness of your browser to see if you are still at risk from this kind of data-gathering, even if you have privacy-protective software installed."

Comments (none posted)

FSF: Free software activists come together on proposed U.S. DoE regulations

The U.S. Department of Education posted a Notice of Proposed Rule Making earlier this fall, *Open Licensing Requirement for Direct Grant Programs*, requesting comments from the public. The proposed regulations did have goals to make material open and available to all, but they didn't explicitly require that the license permit redistribution of modified versions. The FSF has urged the DoE to correct that oversight.

Full Story (comments: none)

Jolla: not dead yet

The Jolla company blog announces that the company has closed a new round of funding and will not be shutting down after all. "This investment enables the continuation of Sailfish OS development, the community activities and other company operations. It’s clear that this recent struggle hit us hard and left some battle wounds but most importantly this means that the development and life of Sailfish OS will continue strong. This alone is worth a celebration!"

Comments (10 posted)

Calls for Presentations

CFP Deadlines: December 24, 2015 to February 22, 2016

The following listing of CFP deadlines is taken from the LWN.net CFP Calendar.

DeadlineEvent Dates EventLocation
December 31 April 26
April 28
Open Source Data Center Conference Berlin, Germany
January 3 May 28
June 5
PyCon 2016 Portland, OR, USA
January 8 March 19
March 20
Chemnitzer Linux Tage 2016 Chemnitz, Germany
January 10 April 15
April 17
PyCon Italia Sette Firenze, Italia
January 11 March 23 Make Open Source Software 2016 Bucharest, Romania
January 15 March 14
March 17
Open Networking Summit Santa Clara, CA, USA
January 15 March 10
March 12
Studencki Festiwal Informatyczny (Students' Computer Science Festival) Cracow, Poland
January 16 April 1 DevOps Italia Bologna, Italy
January 18 March 18
March 20
FOSSASIA 2016 Singapore Singapore, Singapore
January 19 May 17
May 21
PGCon - PostgreSQL Conference for Users and Developers Ottawa, Canada
January 22 May 2
May 5
FOSS4G North America Raleigh, NC, USA
January 22 January 22
January 23
XenProject - Cloud Innovators Forum Pasadena, CA, USA
January 24 March 14
March 18
CeBIT 2016 Open Source Forum Hannover, Germany
January 24 March 11
March 13
PyCon SK 2016 Bratislava, Slovakia
January 29 April 20
April 21
Vault 2016 Raleigh, NC, USA
February 1 April 25
April 29
OpenStack Summit Austin, TX, USA
February 1 June 22
June 24
USENIX Annual Technical Conference Denver, CO, USA
February 1 April 4
April 8
OpenFabrics Alliance Workshop Monterey, CA, USA
February 2 March 29
March 31
Collaboration Summit Lake Tahoe, CA, USA
February 5 April 4
April 6
Embedded Linux Conference San Diego, CA, USA
February 5 April 4
April 6
OpenIoT Summit San Diego, CA, USA
February 6 February 12
February 14
Linux Vacation / Eastern Europe Winter Edition 2016 Minsk, Belarus
February 8 April 7
April 8
SRECon16 Santa Clara, CA, USA
February 10 April 23
April 24
LinuxFest Northwest Bellingham, WA, USA
February 12 May 9
May 13
ApacheCon North America Vancouver, Canada
February 15 March 11
March 13
Zimowisko Linuksowe TLUG Puck, Poland

If the CFP deadline for your event does not appear here, please tell us about it.

Upcoming Events

SCALE Update

Southern California Linux Expo (SCALE) will take place January 21-24 in Pasadena, CA. There will be an installfest and two basic system administration classes. There is still room for a few UpSCALE talks, though that will close soon. Also there are rooms available at the special conference rate, and those are going fast.

Full Story (comments: none)

LibrePlanet seeks sponsors

The Free Software Foundation is selecting the program for LibrePlanet 2016, which will take place March 19-20 in Boston, MA. Registration is open and the FSF is seeking sponsors for its travel scholarship fund, to help a fellow free-software enthusiast attend.

Full Story (comments: none)

Planning has begun for LPC 2016

The 2016 edition of the Linux Plumbers Conference has announced that planning for the conference has begun. LPC will be held November 2-4 in Santa Fe, New Mexico in conjunction with the Kernel Summit

Full Story (comments: none)

Events: December 24, 2015 to February 22, 2016

The following event listing is taken from the LWN.net Calendar.

Date(s)EventLocation
December 27
December 30
32. Chaos Communication Congress Hamburg, Germany
January 8 Fairphone Workshop Amsterdam, Netherlands
January 16 Bangalore Linux Kernel Meetup Bangalore, India
January 20
January 22
O'Reilly Design Conference 2016 San Francisco, CA, USA
January 21
January 22
Ubuntu Summit Pasadena, CA, USA
January 21
January 24
SCALE 14x - Southern California Linux Expo Pasadena, CA, USA
January 22
January 23
XenProject - Cloud Innovators Forum Pasadena, CA, USA
January 25 Richard Stallman - "A Free Digital Society" Stockholm, Sweden
January 30
January 31
Free and Open Source Developers Meeting Brussels, Belgium
February 1 MINIXCon 2016 Amsterdam, Netherlands
February 1 Sysadmin Miniconf Geelong, Australia
February 1
February 5
linux.conf.au Geelong, Australia
February 5
February 7
DevConf.cz 2016 Brno, Czech Republic
February 10 The Block Chain Conference San Francisco, CA, USA
February 10
February 12
netdev 1.1 Seville, Spain
February 12
February 14
Linux Vacation / Eastern Europe Winter Edition 2016 Minsk, Belarus

If your event does not appear here, please tell us about it.

Page editor: Rebecca Sobol


Copyright © 2015, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds