Your editor is not always known for the display of large amounts of good
sense. Arguably, this poor judgment is best displayed by the habit of
running leading-edge development distributions on systems which are needed
for everyday work. Development distributions are where distributors create
their next releases; they tend to contain packages fresh from their
upstream sources which are not, always, quite ready for prime time.
As a result of running these systems, episodes like the following are
discouragingly commonplace:
- Two hours prior to leaving to catch a plane to yet another conference,
your editor decided to do a "quick" update on the laptop system, which
was running the Ubuntu development repository. What followed was two
highly focused hours with a rescue CD bringing the system back to a
point where it would boot and run a presentation.
- Your editor's desktop, running Fedora's Rawhide, started to exhibit an
interesting interaction between Gnash and the X server, with the
result that, at random times, random X clients would be abruptly
disconnected. The old lesson about frequently saving one's work was
well reinforced over the few days it took to track down the problem.
Given that this kind of occurrence is not particularly rare, one might well
wonder why your editor continues to run development distributions on
mission-critical systems. Natural cranial density may well play into this
situation, of course. There are also clear advantages for somebody in your
editor's line of work in seeing where distributions - and the applications
they ship - are headed before they get the "stable" stamp applied to them.
But that does not explain why so many others run these distributions; there
is more to it than that.
When one runs a development distribution, one is immersed in the heart of
the process that makes Linux happen. There are opportunities to help
improve the system (by reporting bugs if nothing else) and to influence
the directions that development takes. The only way to effectively test such a
complex collection of software is to use it in real-world situations; this
testing is a crucial part of the process as a whole. And the truth of the
matter is that software which is under ongoing development is alive in ways
that occasional, stabilized releases are not. It's sort of like having a small
child in the house: development distributions will surprise you every day
with some new ability, a new look, or something totally off the wall and
humorous.
Of course, again like a child, these distributions will also bring surprises
in the form of an occasional, unpleasant mess to clean up, usually at highly
inopportune times. It's part of the deal.
LWN tends not to run a lot of distribution reviews, mostly because doing a
review which goes beyond commenting on the installer requires using the
distribution for real work over a substantial period of time. Your editor
has, however, been using these two distributions for long enough to get a
sense for the differences between them. So what follows is a review of
Rawhide and Ubuntu (through the Edgy, Feisty, and Gutsy development
periods - your editor has not, yet, had the courage to jump onto the Hardy
train) as development distributions. Needless to say, your editor
will not be making comments on the installation process.
Stability
So what does matter to users of development distributions? Clearly, an
issue which will always be at the top of the list is stability. One
expects to get bitten on occasion, but it would be nice if "on occasion"
were as occasional as possible. Getting real metrics on stability of
development distributions would not be easy to do, but your editor can say
this: Ubuntu seems to break more often than Rawhide does, and in more
severe ways. Your editor's Rawhide system has never required
reinstallation from scratch - something which cannot be said of the
laptop. The sad fact is that Ubuntu, for all its qualities, does have a
bit of tendency to ship buggy software; the official releases, too, sometimes
have surprises, especially with the more obscure packages. Don Marti's recent
experience in this regard is not exceptional.
Tracking a development distribution is hard work; one must, to the extent
possible, keep an eye on what is changing and try to figure out when the
most auspicious times for an update might be. Rawhide publishes a single
message daily with a list of updated packages and known dependency problems
(example). Ubuntu, instead, sends out a
separate message for every updated package (example). Either way, trying to follow
everything that changes from one day to the next is an impossible task for
all but the most dedicated reader - the volume is simply too high. So one
ends up starting an update, looking at the list of packages to upgrade, and
trying to decide whether, given the day's requirements, an update is a
sensible thing to do or not. As noted above, your editor occasionally gets
this decision wrong.
|
Coding coding coding
Tho the desktops blowing
Keeps on near exploding
Rawhide
Brains, wit and pleasure
Debuggin' forever
Wishing our code was not to blame
All the things that we're missing
Typecasts, NULLs and phishing
Are waiting at the end of the day
-- Alan Cox
|
The Fedora community has a most helpful resource in the form of the
fedora-test mailing list. When something goes badly wrong, somebody will
usually post some sort of anguished cry, allowing everybody who is further
back in the pack of lemmings to decide to skip the update for that day.
Thanks to this list, your editor was happily able to avoid the inadvertent
breaking of the X window system which recently burned a number of Rawhide
users. Even better, Rawhide developers will occasionally post warnings
that a difficult transition is about to happen; for example, Rawhide users
are
well advised to take
evasive action if they care about graphical displays over the next few
weeks. Occasional bad poetry (see sidebar) is a special bonus.
As far as your editor can tell, the Ubuntu community lacks an analogous
list; there is no public forum specifically for users of the development
distribution.
Package management and updates
Another aspect of tracking a development distribution is package
management. Rawhide's tool for this task is yum. Your editor has
expressed his opinion on this tool before; it is not, shall we say, the
yummiest part of the distribution. That said, yum has improved
considerably in recent times. Some basic caching means that, at least some
of the time, operations like "yum search" no longer allow the consumption
of more than one cup of coffee before they complete.
The under-publicized skip-broken plugin allows a system
to be updated even if an obscure package is uninstallable because of a
dependency problem (and Rawhide frequently has dependency problems). Your
editor no longer remembers when it was last necessary to remove rpm's cache
files by hand. Most of the time, the yum/rpm combination works well enough
these days - at least for those of us who are not in a hurry and have a lot
of memory.
Ubuntu, of course, uses apt and dpkg. These tools, in many ways, remain
nicer than their rpm-based equivalents. Apt is faster and seems to be
smarter about complicated updates - though one must still watch closely
when doing a dist-upgrade (often necessary with development distributions)
to ensure that apt does not stealthily remove crucial packages. Tools like
dpkg-reconfigure are most nice to have when an update causes, say, one's
mail configuration to take a strange turn. All told, Ubuntu's Debian-based
package management tools still are nicer to work with, though the gap is
narrowing.
One interesting difference is in the handling of configuration file
updates. RPM-based distributions will, when faced with an updated
configuration file, put the new version in the target directory with a
.rpmnew extension. Except when they, instead, replace the file
and leave the old one with a .rpmsave extension. Except when they
use .rpmorig instead. Your editor's system currently has 106
.rpmnew files, 41 .rpmsave files, and 103
.rpmorig files under /etc; your editor has no clue about
what changes might be indicated by any of them. A diligent user will, of
course, read the update log and carefully look to see what has changed
whenever one of these files is created. The rest of us just never notice
until something breaks, at which point we go in to try to figure out, say,
why printing no longer works.
Ubuntu, true to its Debian roots, halts the update process and asks the
administrator what to do. Except, on occasion, where it just silently
replaces some vital configuration file with a non-working version.
Fortunately, that does not happen very often, but there is a much more
frequent problem which afflicts all Debian-based distributions: it will
often stop and ask what to do about configuration files which have never
been changed by anybody. In cases where the file has never required
intervention, it would sure be nice not to have to tell the system
explicitly that the replacement does not require intervention either.
But it must be said that it is better to err on the side of asking what to
do than to silently install (or drop) configuration file updates.
In general, Debian-based systems have traditionally been seen as being easier to update -
especially from remote repositories - than RPM-based systems. Your editor
has not really found that to be the case here, though. The desktop Rawhide
system started at Fedora Core 2 and has never seen an installation CD
since. As mentioned above, the Ubuntu system has required a couple of
reinstallations. Ubuntu has, unfortunately, earned a bit of a reputation for
upgrade-related problems; somewhere in the process of civilizing Debian,
that distribution's robust upgradability has suffered.
Of course, Rawhide is not perfect in this regard. Your editor still has
not had the time to figure out why the PulseAudio transition has left sound
in a problematic state, for example. Gracefully replacing core
infrastructure on a running distribution is simply not an easy thing to do.
Package selection
With regard to the variety of packages available, Ubuntu used to have a
huge lead. When the full set of universe repositories is used, this
Debian-based distribution still offers more packages than Rawhide does. In
the recent past, Rawhide was, to a great extent, limited to the set of
packages offered by Fedora Core. The separate-but-unequal "Extras"
repository filled in some of the gaps, but, for the development
distribution, Core and Extras were often inconsistent with each other and a
system using Extras packages tended to be hard to update. Now there is
only one repository and life is better. Your editor has always made a
point of having something Debian-based around just because almost any
package of interest was only an apt-get away. But now it is rare that a
desired tool cannot be found in Rawhide.
Whether one can get the current version of a given program from
either of these repositories tends to be a hit-or-miss proposition. Both
distributions freeze updates as their release dates approach, with the
result that, near the end of the cycle, the packages on offer tend to lag behind what is
available upstream. Ubuntu is rather more aggressive than Rawhide, though,
in shoveling quite-new software versions in shortly before its release
dates. It's worth noting that the Fedora project appears to be planning to
change how Rawhide works starting with the Fedora 9 cycle; the
stabilized distribution and Rawhide will fork much sooner, allowing Rawhide
to blast on ahead during the later stages of the distribution cycle.
Both distributions, sometimes, seem to be a bit over-zealous in
churning packages; your editor has never understood why large packages like
dejavu-fonts or the OpenOffice.org language packages (or just
OpenOffice.org) seem to require daily, bandwidth-sapping updates.
For people who want easy access to packages containing patent-encumbered or
non-free software, Ubuntu will clearly work better. Repositories with that
kind of stuff are configured from the outset and the pieces fit together
nicely. Rawhide users must go to third-party repositories - a move which
is likely to introduce dependency problems and make updates harder to do.
Meanwhile, this aspect of Ubuntu is, for better or for worse, likely to
make life easier for those who want to run a development distribution on a
difficult laptop.
Conclusion
Your editor tries to make a point of changing distributions on occasion,
just to have a good feel for what is out there. The two development
distributions discussed here are far from the only ones out there. Others
worth of consideration for any willing victim include:
- Debian sid,
which has long been the definitive development distribution. Many
developers have been running sid for many years and have never looked
for anything else.
- Gentoo. The last time your editor
attempted to install Gentoo was some years ago on a very slow system.
A few days later, it was still building packages. There is, however,
a large group of users (with faster machines) who swear by this
distribution.
- Mandriva's Cooker appears to
have an active and growing user community.
When looking at the major distributions and their associated development
versions, one is struck by one significant absence: there is no development
repository available for SUSE Linux. There is an occasional openSUSE
development release, but no access to the current development repository.
As a result, SUSE misses out on the sort of active user and testing
community that these other distributions have. Update: some
commenters have pointed out the openSUSE Factory distribution,
which your editor obviously missed.
Your editor does not wish to choose a winner among the two development
distributions here, much less try to compare them with the other available
distributions. One can certainly have a fun, useful, occasionally
thrilling ride with any of them. The best thing for anybody with the
requisite interest, technical skills (especially in the disaster recovery
area), and calm disposition is to pick one and jump into the game. There's
no better way to get into the process that creates Linux.
Comments (50 posted)
By Jake Edge
November 7, 2007
Laptop hard disk failures are horrible to contemplate; they always come
at the worst possible time, far from home or office, while managing to lose a huge amount of important data. This explains the loud outcry when it appeared
that Ubuntu was causing premature failures in laptop hard disks, as was
reported in many places last week. The problem is not really
Ubuntu-specific, nor as widespread as was feared, but before the dust
settled it certainly looked like it might give Ubuntu a very public black
eye.
Laptop manufacturers want to reduce the power consumption of their devices; one way to do that is to spin down the hard disk when it
hasn't been accessed for a time. Some hard disks then move the heads away
from the platters, called "parking the heads", in order to prevent damage
to the drive under a sudden deceleration; hitting the floor for
example. Depending on the drive, head parking or spinning down will
increment a count, the load/unload cycle (or just load cycle) count, which
can then be queried using
the smartctl command:
[root@anhinga jake]# smartctl -A /dev/sda | grep Load_Cycle
193 Load_Cycle_Count [...] 359618
The number at the end of the line is the count.
Drive manufacturers typically rate their laptop drives for 600,000
load cycles, so when people started noticing counts around half that
number on their relatively new Ubuntu laptops, they got worried. Bugs were
were filed in
Ubuntu's Launchpad, various blogs started reporting it, and the story
was picked up by Slashdot, running under
the headline "Ubuntu
May Be Killing Your Laptop's Hard Drive". At that point, muttering
about tar and feathers could be heard in various quarters, but it is
difficult to put the blame solely on Ubuntu.
The default power saving settings for a particular laptop are set by the
manufacturer. Unless "laptop mode" is enabled – it is off by
default, but would seem a reasonable thing to enable on a laptop –
Ubuntu does not change those settings. In order to get the best battery
life, laptop makers are setting very aggressive power saving modes that
will spin down the disk and park the heads after a short period of idle time
(typically 15-60 seconds). If the disk is accessed after that happens, the
process is reversed and the counter gets incremented again. For some
laptops, this happens regardless of whether it is running from battery or not.
Default Ubuntu installs, not unlike many other distributions, tend to
access the disk frequently – for logging, atime updates, or other
reasons. If
the time between accesses is larger than the time between spin downs, a
high load cycle count can result. The load cycle count is an indicator of
the wear and tear on the drive, for both the motors and the parking
mechanism and the drive rating is only an estimate of what can be
expected. Users are reporting drive problems with only one-third of the
expected load cycles; which may or may not be related, of course.
In some ways, Ubuntu is being victimized by its own success; this problem
is getting pinned on Ubuntu, in part, because it is so popular. Users of
other distributions are starting to chime in with similar problems. As
might be guessed, the problem is not Linux-specific either, with both Mac
OS X and Windows laptop users reporting high load cycle counts as well. It
is a hard problem to completely get a handle on because it is very
hardware-specific, with software settings and usage patterns playing a role
as well.
It is hard to claim that any distribution should be changing default power
management settings without request by the user – the hardware manufacturers
should be responsible for setting reasonable defaults. It will be
very difficult for a distribution to know what settings to make, so the
laptop vendors need to be held accountable to choose defaults that won't
harm the hardware under normal use. It could be
argued that a user who enabled laptop mode on Ubuntu made it reasonable for the OS to
set the hard disk to its most aggressive power management setting, but that
may have worsened the problem for some. Various fixes have been
gathered on the Ubuntu wiki page,
but the basic idea is to change the power savings setting for the hard disk using
hdparm -B 254 /dev/hda (or /dev/sda). The 254 value sets
the least aggressive power savings mode; some users are reporting that 255
will disable power management completely, while others say it has no effect.
The biggest change
distributions can make to help alleviate this problem is to reduce the number of writes, especially
nearly useless writes, to the disk. One of the culprits reported for
Ubuntu is the acpid power management daemon writing battery status
to a logfile every 15 seconds,
which seems like a good way to ensure the battery life reduces more quickly
than it should. Some logging could be deferred or disabled when
running from battery.
Using the relatime
option when mounting filesystems is another, fairly simple, change that
could be made to significantly reduce disk writes that are likely to be
pointless. Fedora 8 enables that option by default for all systems,
battery powered or not, for the disk performance increase that it gives.
People running older kernels, before 2.6.20 added the relatime
option, may want to consider disabling atime updates altogether using the
noatime mount option.
There is still plenty of work to be done to produce the most power
efficient Linux systems, but we are making lots of progress.
The ongoing work to reduce the power consumption of both the kernel
and, more importantly, user space programs, has made amazing strides in a
fairly short period of time. This panic over Ubuntu the Mighty Disk Eater
might have been overblown, but it will serve to help us get better systems
in the long run; yet another step on the path to world domination.
(Note that the Load_Cycle_Count number above in the smartctl
example is correct for the author's Fedora 7 laptop with a less than
one year old disk. It was increasing at several thousand per day until the
hdparm change was made.)
Comments (36 posted)
November 7, 2007
This article was contributed by Ulrich Drepper
[
Editor's note: welcome to part 7 of Ulrich Drepper's "What every
programmer should know about memory"; this section is concerned with tools
which can help programmers optimize the memory performance of their code.
Those who have not seen the previous parts of this document can find them
from part 1.]
7 Memory Performance Tools
A wide variety of tools is available to help programmers understand
the cache and memory use of a program. Modern processors have
performance monitoring hardware that can be used. Some events are
hard to measure exactly, so there is also room for simulation. When it
comes to higher-level functionality, there are special tools to monitor
the execution of a process. We will introduce a set of commonly used
tools available on most Linux systems.
7.1 Memory Operation Profiling
Profiling memory operations requires collaboration from the hardware.
It is possible to gather some information in software alone, but this
is either coarse-grained or merely a simulation. Examples of
simulation will be shown in Section 7.2 and
Section 7.5. Here we will concentrate on measurable memory
effects.
Access to performance monitoring hardware on Linux is provided by
oprofile. Oprofile provides
continuous profiling capabilities as first described in
[continuous]; it performs statistical, system-wide profiling
with an easy-to-use interface. Oprofile is by no means the only way the
performance measurement functionality of processors can be used;
Linux developers are working on
pfmon
which might at some point be sufficiently widely deployed to warrant being
described here, too.
The interface oprofile provides is simple and minimal but also pretty low-level, even if the
optional GUI is used. The user has to select among the events the processor can
record. The architecture manuals for the processors describe the
events but, oftentimes, it requires extensive knowledge about the
processors themselves to interpret the data. Another problem is the
interpretation of the collected data. The performance measurement counters
are absolute values and can grow arbitrarily. How high is too high
for a given counter?
A partial answer to this problem is to avoid looking at the absolute
values and, instead, relate multiple counters to each other. Processors
can monitor more than one event; the ratio of the collected
absolute values can then be examined. This gives nice, comparable
results. Often the divisor is a measure of processing time, the
number of clock cycles or the number of instructions. As an initial
stab at program performance, relating just these two numbers by
themselves is useful.
Figure 7.1: Cycles per Instruction (Follow Random)
Figure 7.1 shows the Cycles Per Instruction (CPI) for the
simple random Follow test case for the various working set sizes. The
names of the events to collect this information for most Intel
processor are
CPU_CLK_UNHALTED and INST_RETIRED. As the names suggest,
the former counts the clock cycles of the CPU and the latter the
number of instructions. We see a picture similar to the cycles per
list element measurements we used. For small working set sizes the
ratio is 1.0 or even lower. These measurements were made on a Intel
Core 2 processor, which is multi-scalar and can work on several
instructions at once. For a program which is not limited by memory
bandwidth, the ratio can be significantly below 1.0 but, in this case,
1.0 is pretty good.
Once the L1d is no longer large enough to hold the working set,
the CPI jumps to just below
3.0. Note that the CPI ratio averages the penalties for accessing L2
over all instructions, not just the memory instructions. Using the
cycles for list element data, it can be worked out how many
instructions per list element are needed. If even the L2 cache is not
sufficient, the CPI ratio jumps to more than 20. These are expected
results.
But the performance measurement counters are supposed to give more
insight into what is going on in the processor. For this we need to
think about processor implementations. In this document, we are concerned with
cache handling details, so we have to look at events related to the
caches. These events, their names, and what they count, are
processor-specific. This is where oprofile is currently hard to use,
irrespective of the simple user interface: the user
has to figure out the performance counter details by her/himself. In
Section 10 we will see details about some processors.
For the Core 2 processor the events to look for are L1D_REPL,
DTLB_MISSES, and L2_LINES_IN. The latter can measure both
all misses and misses caused by instructions instead of hardware
prefetching. The results for the random Follow test can be seen
in Figure 7.2.
Figure 7.2: Measured Cache Misses (Follow Random)
All ratios are computed using the number of retired instructions
(INST_RETIRED). This means that instructions not touching memory are
also counted, which, in turn, means that the number of instructions which
do touch memory and which suffer a cache miss is even higher than shown in the
graph.
The L1d misses tower over all the others since an L2 miss implies, for
Intel processors, an L1d miss due to the use of inclusive caches. The
processor has 32k of L1d and so we see, as expected, the L1d rate go
up from zero at about that working set size (there are other uses of the cache beside
the list data structure, which means the increase happens between the 16k
and 32k mark). It is interesting to see that the hardware
prefetching can keep the miss rate at 1% for a working set size up to and
including 64k. After that the L1d rate skyrockets.
The L2 miss rate stays zero until the L2 is exhausted; the few misses
due to other uses of L2 do not influence the numbers much. Once the
size of L2 (221 bytes) is exceeded, the miss rates rise. It is
important to notice that the L2 demand miss rate is nonzero.
This indicates that the hardware prefetcher does not load all the
cache lines needed by instructions later. This is expected, the
randomness of the accesses prevents perfect prefetching. Compare this with the data
for the sequential read in Figure 7.3.
Figure 7.3: Measured Cache Misses (Follow Sequential)
In this graph we can see that the L2 demand miss rate is basically
zero (note the scale of this graph is different from
Figure 7.2). For the sequential access case, the hardware
prefetcher works perfectly: almost all L2 cache misses are caused by
the prefetcher. The fact that the L1d and L2 miss rates are
the same shows that all L1d cache misses are handled by the L2 cache
without further delays. This is the ideal case for all programs but
it is, of course, hardly ever achievable.
The fourth line in both graphs is the DTLB miss rate (Intel has
separate TLBs for code and data, DTLB is the data TLB). For the
random access case, the DTLB miss rate is significant and contributes to the
delays. What is interesting is that the DTLB penalties set in before
the L2 misses. For the sequential access case the DTLB costs are basically
zero.
Going back to the matrix multiplication example in Section 6.2.1 and
the example code in Section 9.1, we can make use of three
more counters. The SSE_PRE_MISS, SSE_PRE_EXEC, and
LOAD_HIT_PRE counters can be used to see how effective the software
prefetching is. If the code in Section 9.1 is run we get
the following results:
| Description | Ratio |
| Useful NTA prefetches | 2.84% |
| Late NTA prefetches | 2.65% |
The low useful NTA (non-temporal aligned) prefetch ratio indicates
that many prefetch instructions are executed for cache lines which are
already loaded, so no work is needed. This means the processor
wastes time to decode the prefetch instruction and look up the cache.
One cannot judge the code too harshly, though. Much depends on the size
of the caches of the processor used; the hardware prefetcher also
plays a role.
The low late NTA prefetch ratio is misleading. The ratio means that
2.65% of all prefetch instructions are issued too late. The
instruction which needs the data is executed before the data could be
prefetched into the cache. It must be kept in mind that
only 2.84%+2.65%=5.5% of the prefetch instructions were
of any use. Of the NTA prefetch instructions which are useful,
48% did not finish in time. The code therefore can be
optimized further:
- most of the prefetch instructions are not needed.
- the use of the prefetch instruction can be adjusted to match the
hardware better.
It is left as an exercise to the reader to determine the best solution
for the available hardware. The exact hardware specification plays a
big role. On Core 2 processors the latency of the SSE arithmetic
operations is 1 cycle. Older versions had a latency of 2 cycles, meaning
that the hardware prefetcher and the prefetch instructions had more
time to bring in the data.
To determine where prefetches might be needed—or are unnecessary—one
can use the opannotate program. It lists the source or assembler code
of the program and shows the instructions where the event was
recognized. Note that there are two sources of vagueness:
- Oprofile performs stochastic profiling. Only every
Nth event (where N is a per-event threshold with an
enforced minimum) is recorded to avoid slowing down operation of the
system too much. There might be lines which cause 100 events and yet
they might not show up in the report.
- Not all events are recorded accurately. For example, the instruction counter
at the time a specific event was recorded might be incorrect. Processors being
multi-scalar makes it hard to give a 100% correct answer. A few
events on some processors are exact, though.
The annotated listings are useful for more than determining the
prefetching information. Every event is recorded with the instruction
pointer; it is therefore also possible to pinpoint other hot spots
in the program. Locations which are the source of many
INST_RETIRED events are executed frequently and deserve to be
tuned. Locations where many cache misses are reported might warrant a
prefetch instruction to avoid the cache miss.
One type of event which can be measured without hardware support is page
faults. The OS is responsible for resolving page faults and, on those
occasions, it also counts them. It distinguishes two kinds of page
faults:
- Minor Page Faults
- These are page faults for anonymous (i.e.,
not file-backed) pages which have not been used so far, for
copy-on-write pages, and for other pages whose content is already in
memory somewhere.
- Major Page Faults
- Resolving them requires access to disk to
retrieve the file-backed (or swapped-out) data.
Obviously, major page faults are significantly more expensive than
minor page faults. But the latter are not cheap either. In either
case an entry into the kernel is necessary, a new page must be found, the page
must be cleared or populated with the appropriate data, and the page
table tree must be modified accordingly. The last step requires
synchronization with other tasks reading or modifying the page table
tree, which might introduce further delays.
The easiest way to retrieve information about the page fault counts is
to use the time tool. Note: use the real tool, not the shell
builtin. The output can be seen in Figure 7.4. {The leading
backslash prevents the use of the built-in command.}
$ \time ls /etc
[...]
0.00user 0.00system 0:00.02elapsed 17%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (1major+335minor)pagefaults 0swaps
Figure 7.4: Output of the time utility
The interesting part here is the last line. The time tool reports one
major and 335 minor page faults. The exact numbers vary;
in particular, repeating the run immediately will likely show that there
are now no major page faults at all. If the program performs the same
action, and nothing changes in the environment, the total page
fault count will be stable.
An especially sensitive phase with respect to page faults is
program start-up. Each page which is used will produce a page fault;
the visible effect (especially for GUI applications) is
that the more pages that are used, the longer it takes for the program to
start working. In Section 7.5 we will see a tool to measure this
effect specifically.
Under the hood, the time tool uses the rusage functionality. The
wait4 system call fills in a struct rusage object when
the parent waits for a child to terminate; that is exactly what is
needed for the time tool. But it is also possible for a process to
request information about its own resource usage (that is where the name
rusage comes from) or the resource usage of its terminated
children.
#include <sys/resource.h>
int getrusage(__rusage_who_t who, struct rusage *usage)
The who parameter specifies which process the information is requested for.
Currently,
RUSAGE_SELF and RUSAGE_CHILDREN are defined. The resource
usage of the child processes is accumulated when each child
terminates. It is a total value, not the usage of an individual
child process. Proposals to allow requesting thread-specific
information exist, so it is likely that we will see RUSAGE_THREAD in
the near
future. The rusage structure is defined to contain all kinds of
metrics, including execution time, the number of IPC messages sent and
memory used, and the number of page faults. The latter information is
available in the ru_minflt and ru_majflt members of the
structure.
A programmer who tries to determine where her program loses
performance due to page faults could regularly request the information
and then compare the returned values with the previous results.
From the outside, the information is also visible if the requester has
the necessary privileges. The pseudo file /proc/<PID>/stat, where
<PID> is the process ID of the process we are interested in,
contains the page fault numbers in the tenth to fourteenth fields.
They are pairs of the process's and its childrens' cumulative minor
and major page faults, respectively.
7.2 Simulating CPU Caches
While the technical description of how a cache works is relatively
easy to understand, it is not so easy to see how an actual program
behaves with respect to cache. Programmers are not directly concerned
with the values of addresses, be they absolute nor relative.
Addresses are determined, in part, by the linker and, in part, at runtime
by the dynamic linker and the kernel. The generated assembly code is
expected to work with all possible addresses and, in the
source language, there is not even a hint of absolute address values
left. So it can be quite difficult to get a sense for how a program is
making use of memory. {When programming close to the hardware this might be
different, but this is of no concern to normal programming and, in any
case, is only possible for special addresses such as memory-mapped
devices.}
CPU-level profiling tools such as oprofile (as described in
Section 7.1) can help to understand the cache use. The
resulting data corresponds to the actual hardware, and it can be collected
relatively quickly if fine-grained collection is not needed. As soon as
more fine-grained data is needed, oprofile is not usable anymore; the
thread would have to be interrupted too often. Furthermore, to
see the memory behavior of the program on different processors,
one actually has to have such machines and execute the program on
them. This is sometimes (often) not possible. One example is the data
from Figure 3.8. To collect such data with
oprofile one would have to have 24 different machines, many of which
do not exist.
The data in that graph was collected using a cache simulator. This
program, cachegrind, uses the valgrind framework, which was initially
developed to check for memory handling related problems in a program.
The valgrind framework simulates the execution of a program and, while
doing this, it allows various extensions, such as cachegrind, to hook into
the execution framework. The cachegrind tool uses this to intercept
all uses of memory addresses; it then simulates the operation of L1i, L1d, and L2
caches with a given size, cache line size, and associativity.
To use the tool a program must be run using valgrind as a wrapper:
valgrind --tool=cachegrind command arg
In this simplest form the program command is executed with the
parameter arg while simulating the three caches using sizes and
associativity corresponding to that of the processor it is running
on. One part of the output is printed to standard error when the
program is running; it consists of statistics of the total cache use
as can be seen in Figure 7.5.
==19645== I refs: 152,653,497
==19645== I1 misses: 25,833
==19645== L2i misses: 2,475
==19645== I1 miss rate: 0.01%
==19645== L2i miss rate: 0.00%
==19645==
==19645== D refs: 56,857,129 (35,838,721 rd + 21,018,408 wr)
==19645== D1 misses: 14,187 ( 12,451 rd + 1,736 wr)
==19645== L2d misses: 7,701 ( 6,325 rd + 1,376 wr)
==19645== D1 miss rate: 0.0% ( 0.0% + 0.0% )
==19645== L2d miss rate: 0.0% ( 0.0% + 0.0% )
==19645==
==19645== L2 refs: 40,020 ( 38,284 rd + 1,736 wr)
==19645== L2 misses: 10,176 ( 8,800 rd + 1,376 wr)
==19645== L2 miss rate: 0.0% ( 0.0% + 0.0% )
Figure 7.5: Cachegrind Summary Output
The total number of
instructions and memory references is given, along with the number of misses they
produce for the L1i/L1d and L2 cache, the miss rates, etc. The tool
is even able to split the L2 accesses into instruction and data accesses,
and all data cache uses are split in read and write accesses.
It becomes even more interesting when the details of the simulated
caches are changed and the results compared. Through the use of the —I1,
—D1, and —L2 parameters, cachegrind can be instructed to
disregard the processor's cache layout and use that specified on the
command line. For example:
valgrind --tool=cachegrind --L2=8388608,8,64 command arg
would simulate an 8MB L2 cache with 8-way set associativity and
64 byte cache line size. Note that the —L2 option appears on
the command line before the name of the program which is simulated.
This is not all cachegrind can do. Before the process exits
cachegrind writes out a file named cachegrind.out.XXXXX where
XXXXX is the PID of the process. This file contains the summary
information and detailed information about the cache use in each
function and source file. The data can be viewed using the
cg_annotate program.
The output this program produces contains the cache use summary which
was printed when the process terminated, along with a detailed summary of
the cache line use in each function of the program. Generating this
per-function data requires that cg_annotate is able to match
addresses to functions. This means debug information should be
available for best results. Failing that, the ELF symbol tables can
help a bit but, since internal symbols are not listed in the dynamic
symbol table, the results are not complete. Figure 7.6 shows
part of the output for the same program run as
Figure 7.5.
--------------------------------------------------------------------------------
Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw file:function
--------------------------------------------------------------------------------
53,684,905 9 8 9,589,531 13 3 5,820,373 14 0 ???:_IO_file_xsputn@@GLIBC_2.2.5
36,925,729 6,267 114 11,205,241 74 18 7,123,370 22 0 ???:vfprintf
11,845,373 22 2 3,126,914 46 22 1,563,457 0 0 ???:__find_specmb
6,004,482 40 10 697,872 1,744 484 0 0 0 ???:strlen
5,008,448 3 2 1,450,093 370 118 0 0 0 ???:strcmp
3,316,589 24 4 757,523 0 0 540,952 0 0 ???:_IO_padn
2,825,541 3 3 290,222 5 1 216,403 0 0 ???:_itoa_word
2,628,466 9 6 730,059 0 0 358,215 0 0 ???:_IO_file_overflow@@GLIBC_2.2.5
2,504,211 4 4 762,151 2 0 598,833 3 0 ???:_IO_do_write@@GLIBC_2.2.5
2,296,142 32 7 616,490 88 0 321,848 0 0 dwarf_child.c:__libdw_find_attr
2,184,153 2,876 20 503,805 67 0 435,562 0 0 ???:__dcigettext
2,014,243 3 3 435,512 1 1 272,195 4 0 ???:_IO_file_write@@GLIBC_2.2.5
1,988,697 2,804 4 656,112 380 0 47,847 1 1 ???:getenv
1,973,463 27 6 597,768 15 0 420,805 0 0 dwarf_getattrs.c:dwarf_getattrs
Figure 7.6: cg_annotate Output
The Ir, Dr, and Dw columns show the total cache use, not cache
misses, which are shown in the following two columns.
This data can be used to identify the code which produces the most
cache misses. First, one probably would concentrate on L2 cache misses,
then proceed to optimizing L1i/L1d cache misses.
cg_annotate can provide the data in more detail. If the name of a
source file is given, it also annotates (hence the program's name) each
line of the source file with the number of cache hits and misses
corresponding to that line. This information allows the programmer to
drill down to the
exact line where cache misses are a problem. The program interface is
a bit raw: as of this writing, the cachegrind data file and
the source file must be in the same directory.
It should, at this point, be noted again: cachegrind is a simulator
which does not use measurements from the processor. The
actual cache implementation in the processor might very well be quite
different. cachegrind simulates Least Recently Used (LRU) eviction,
which is likely to be too expensive for caches with large
associativity. Furthermore, the simulation does not take context
switches and system calls into account, both of which can destroy
large parts of L2 and must flush L1i and L1d. This causes the
total number of cache misses to be lower than experienced in reality.
Nevertheless, cachegrind is a nice tool to learn about a program's
memory use and its problems with memory.
7.3 Measuring Memory Usage
Knowing how much memory a program allocates and possibly where the
allocation happens is the first step to optimizing its memory use
There are, fortunately, some easy-to-use programs available
which do not even require that the program be recompiled or
specifically modified.
For the first tool, called massif, it is sufficient to not strip the debug information
which the compiler can automatically generate. It provides an overview
of the accumulated memory use over time. Figure 7.7 shows an
example of the generated output.
Figure 7.7: Massif Output
Like cachegrind
(Section 7.2), massif is a tool using the valgrind
infrastructure. It is started using
valgrind --tool=massif command arg
where command arg is the program which is observed and its
parameter(s), The program will be simulated and all calls to memory
allocation functions are recognized. The call site is recorded along with
a timestamp value; the
new allocation size is added to both the whole-program total and total for
the specific call site. The same applies to the
functions which free memory where, obviously, the size of the freed block
is subtracted from the appropriated sums. This information can then
be used to create a graph showing the memory use over the
lifetime of the program, splitting each time value according to the
location which requested the allocation. Before the process is
terminated massif creates two files: massif.XXXXX.txt and
massif.XXXXX.ps, where XXXXX in both cases is the PID of
the process. The .txt file is a summary of the memory use for
all call sites and the .ps is what can be seen in Figure 7.7.
Massif can also record the program's stack usage, which can be useful to
determine the total memory footprint of an application. But this is
not always possible. In some situations (some thread stacks or when
signaltstack is used) the valgrind runtime cannot
know about the limits of the stack . In these situations, it also does not make much
sense to add these stacks' sizes to the total. There are several other
situations where it makes no sense. If a program is affected by this,
massif should be started with the addition option —stacks=no.
Note, this is an option for valgrind and therefore must come before
the name of the program which is being observed.
Some programs provide their own memory allocation functions or wrapper
functions around the system's allocation functions. In the first case,
allocations are normally missed; in the second case, the recorded call
sites hide information, since only the address of the call in the
wrapper function is recorded. For this reason, it is possible to add
additional functions to the list of allocation functions. The
—alloc-fn=xmalloc parameter would specify that the function
xmalloc is also an allocation function, which is often the case in GNU
programs. Calls to xmalloc are recorded, but not the allocation
calls made from within xmalloc.
The second tool is called memusage; it is part of the GNU C
library. It is a simplified version of massif (but existed a long
time before massif). It only records the total memory use for heap
(including possible calls to mmap etc. if the -m option is
given) and, optionally, the stack. The results can be shown as a graph
of the total memory use over time or, alternatively, linearly over the
calls made to allocation functions. The graphs are created separately
by the memusage script which, just as with valgrind, has to be used to start
the application:
memusage command arg
The -p IMGFILE option must be used to specify that the graph should
be generated in the file IMGFILE, which will be a PNG file. The
code to collect the data is run in the actual program itself, it is not
an simulation like valgrind. This means memusage is much faster than
massif and usable in situations where massif would be not useful.
Besides total memory consumption, the code also records allocation sizes
and, on program termination, it shows a histogram of the used allocation
sizes. This information is written to standard error.
Sometimes it is not possible (or feasible) to call the program which is
supposed to be observed directly. An example is the compiler stage of
gcc, which is started by the gcc driver program. In this case the name
of the program which should be observed must be provided to the
memusage script using the -n NAME parameter. This parameter is
also useful if the program which is observed starts other
programs. If no program name is specified all started programs will
be profiled.
Both programs, massif and memusage, have additional options. A
programmer finding herself in the position needing more functionality
should first consult the manual or help messages to make sure the
additional functionality is not already implemented.
Now that we know how the data about memory allocation can be captured,
it is necessary to discuss how this data can be interpreted in the
context of memory and cache use. The main aspects of efficient dynamic
memory allocation are linear allocation and compactness of the used
portion. This goes back to making prefetching efficient and reducing
cache misses.
A program which has to read in an arbitrary amount of data for later
processing could do this by creating a list where each of the list
elements contains a new data item. The overhead for this allocation
method might be minimal (one pointer for a single-linked list) but the
cache effects when using the data can reduce the performance
dramatically.
One problem is, for instance, that there is no guarantee that
sequentially allocated memory is laid out sequentially in memory.
There are many possible reasons for this:
- memory blocks inside a large memory chunk administrated by the
memory allocator are actually returned from the back to the front;
- a memory chunk is exhausted and a new one is started in a
different part of the address space;
- the allocation requests are for different sizes which are served
from different memory pools;
- the interleaving of allocations in the
various threads of multi-threaded programs.
If data must be allocated up front for later processing, the linked-list
approach is clearly a bad idea. There is no guarantee (or even likelihood)
that the consecutive elements in the list are laid out consecutively in
memory. To ensure contiguous allocations, that memory must not be
allocated in small chunks. Another layer of memory handling must be
used; it can easily be implemented by the programmer. An alternative is to
use the obstack implementation available in the GNU C library. This
allocator requests large blocks of memory from the system's allocator
and then hands arbitrarily large or small blocks of memory out. These
allocations are always sequential unless the large memory chunk is
exhausted, which is, depending on the requested allocation sizes, pretty
rare. Obstacks are not a complete replacement for a memory allocator,
they have limited abilities to free objects. See the GNU C library
manual for details.
So, how can a situation where the use of obstacks (or similar techniques)
is advisable be recognized from the graphs? Without consulting the
source, possible candidates for the changes cannot be identified, but
the graph can provide an entry point for the search. If many
allocations are made from the same location, this could mean that
allocation in bulk might help. In Figure 7.7, we can see such a
possible candidate in the allocations at address 0x4c0e7d5. From
about 800ms into the run until 1,800ms into the run this is the only
area (except the top, green one) which grows. Moreover, the slope is
not steep, which means we have a large number of relatively small
allocations. This is, indeed, a candidate for the use of obstacks or
similar techniques.
Another problem the graphs can show is when the total number of
allocations is high. This is especially easy to see if the graph is
not drawn linearly over time but, instead, linearly over the number of calls
(the default with memusage). In that case, a gentle slope in the graph
means a lot of small allocations. memusage will not say where the
allocations took place, but the comparison with massif's output can say
that, or the programmer might recognize it right away. Many small
allocations should be consolidated to achieve linear memory use.
But there is another, equally important, aspect to this latter class of
cases: many allocations also means higher overhead in administrative
data. This by itself might not be that problematic. The red area
named heap-admin represents this overhead in the massif graph and
it is quite small. But, depending on the malloc implementation,
this administrative data is allocated along with the data blocks, in the
same memory. For the current malloc implementation in the GNU C
library, this is the case: every allocated block has at least a 2-word
header (8 bytes for 32-bit platforms, 16 bytes for 64-bit platforms).
In addition, block sizes are often a bit larger than necessary due to
the way memory is administrated (rounding up block sizes to specific
multiples).
This all means that memory used by the program is interspersed with
memory only used by the allocator for administrative purposes.
We might see something like this:
Each block represents one memory word and, in this small region of
memory, we have four allocated blocks. The overhead due to the block
header and padding is 50%. Due to the placement of the header, this
automatically means that the effective prefetch rate of the processor
is lowered by up to 50% as well. If the blocks were be processed
sequentially (to take maximum advantage of prefetching), the processor
would read all the header and padding words into the cache, even though
they are never supposed to be read from or written to by the
application itself. Only the runtime uses the header words, and the
runtime only comes into play when the block is freed.
Now, one could argue that the implementation should be changed to put
the administrative data somewhere else. This is indeed done in some
implementations, and it might prove to be a good idea. There are many
aspects to be kept in mind, though, security not being the least of
them. Regardless of whether we might see a change in the future, the
padding issue will never go away (amounting to 16% of the data in the example, when
ignoring the headers). Only if the programmer directly takes control
of allocations can this be avoided. When alignment requirements
come into play there might still be holes, but this is also something
under control of the programmer.
7.4 Improving Branch Prediction
In Section 6.2.2, two methods to improve L1i use through branch
prediction and block reordering were mentioned: static prediction
through __builtin_expect and profile guided optimization
(PGO). Correct branch prediction has performance impacts, but here we
are interested in the memory usage improvements.
The use of __builtin_expect (or better the likely and
unlikely macros) is simple. The definitions are placed in a
central header and the compiler takes care of the rest. There is a
little problem, though: it is easy enough for a programmer to use
likely when really unlikely was meant and vice versa.
Even if somebody uses a tool like oprofile to measure incorrect branch
predictions and L1i misses these problems are hard to detect.
There is one easy method, though. The code in Section 9.2 shows an
alternative definition of the likely and unlikely macros
which measure actively, at runtime, whether the static predictions are
correct or not. The results can then be examined by the programmer or
tester and adjustments can be made. The measurements do not actually
take the performance of the program into account, they simply test the
static assumptions made by the programmer. More details can be found,
along with the code, in the section referenced above.
PGO is quite easy to use with gcc these days. It is a three-step
process, though, and certain requirements must be fulfilled. First,
all source files must be compiled with the additional
-fprofile-generate option. This option must be passed to all
compiler runs and to the command which links the program.
Mixing object files compiled with and without this option is possible, but
GPO will not do any good for those that do not have it enabled.
The compiler generates a binary which behaves normally except that it is
significantly larger and slower since it records (and emits) all kinds
of information about branches taken or not. The compiler also emits a
file with the extension .gcno for each input file. This file contains
information related to the branches in the code. It must be preserved
for later.
Once the program binary is available, it should be used to run a
representative set of workloads. Whatever workload is used, the final
binary will be optimized to do this task well. Consecutive runs of
the program are possible and, in general necessary; all the runs will
contribute to the same output file. Before the program terminates, the
data collected during the program run is written out into files with
the extension .gcda. These files are created in the directory which
contains the source file. The program can be executed from any
directory, and the binary can be copied, but the directory with the
sources must be available and writable. Again, one output file is
created for each input source file. If the program is run multiple
times, it is important that the .gcda files of the previous run are
found in the source directories since otherwise the data of the
runs cannot be accumulated in one file.
When a representative set of tests has been run, it is time to
recompile the application. The compiler has to be able to find the
.gcda files in the same directory which holds the
source files. The files cannot be moved since the compiler would not find
them and the embedded checksum for the files would not match anymore.
For the recompilation, replace the
-fprofile-generate parameter with -fprofile-use. It is
essential that the sources do not change in any way that would change the
generated code. That means: it is OK to change white spaces and edit
comments, but adding more branches or basic blocks invalidates the
collected data and the compilation will fail.
This is all the programmer has to do; it is a fairly simple process.
The most important thing to get right is the selection of
representative tests to perform the measurements. If the test
workload does not match the way the program is actually used, the
performed optimizations might actually do more harm than good. For
this reason, is it often hard to use PGO for libraries. Libraries can
be used in many—sometimes widely different—scenarios. Unless the use
cases are indeed similar, it is usually better to rely exclusively on
static branch prediction using __builtin_expect.
A few words on the .gcno and .gcda files. These are binary files
which are not immediately usable for inspection. It is possible,
though, to use the gcov tool, which is also part of the gcc package, to
examine them.
This tool is mainly used for coverage analysis (hence the name) but
the file format used is the same as for PGO. The gcov tool generates
output files with the extension .gcov for each source file with
executed code (this might include system headers). The files are
source listings which are annotated, according to the parameters given
to gcov, with branch counter, probabilities, etc.
7.5 Page Fault Optimization
On demand-paged operating systems like Linux, an
mmap call only modifies the page tables. It makes sure that, for
file-backed pages, the underlying data can be found and, for anonymous
memory, that, on access, pages initialized with zeros are provided. No
actual memory is allocated at the time of the mmap call. {If you want to say Wrong!
wait a second, it will be qualified later that there are
exceptions.}
The allocation part happens when a memory page is first accessed, either by
reading or writing data, or by executing code. In response to the ensuing
page fault, the kernel takes control and determines, using the page
table tree, the data which has to be present on the page. This
resolution of the page fault is not cheap, but it happens for
every single page which is used by a process.
To minimize the cost of page faults, the total number of used pages
has to be reduced. Optimizing the code for size will help with
this. To reduce the cost of a specific code path (for instance, the
start-up code), it is also possible to rearrange code so that, in that
code path, the number of touched pages is minimized. It is not easy to
determine the right order, though.
The author wrote a tool, based on the valgrind toolset, to measure
page faults as they happen. Not the number of page faults, but the
reason why they happen. The
pagein tool emits
information about the order and timing of page faults. The output, written to
a file named pagein.<PID>, looks as in Figure 7.8.
0 0x3000000000 C 0 0x3000000B50: (within /lib64/ld-2.5.so)
1 0x 7FF000000 D 3320 0x3000000B53: (within /lib64/ld-2.5.so)
2 0x3000001000 C 58270 0x3000001080: _dl_start (in /lib64/ld-2.5.so)
3 0x3000219000 D 128020 0x30000010AE: _dl_start (in /lib64/ld-2.5.so)
4 0x300021A000 D 132170 0x30000010B5: _dl_start (in /lib64/ld-2.5.so)
5 0x3000008000 C 10489930 0x3000008B20: _dl_setup_hash (in /lib64/ld-2.5.so)
6 0x3000012000 C 13880830 0x3000012CC0: _dl_sysdep_start (in /lib64/ld-2.5.so)
7 0x3000013000 C 18091130 0x3000013440: brk (in /lib64/ld-2.5.so)
8 0x3000014000 C 19123850 0x3000014020: strlen (in /lib64/ld-2.5.so)
9 0x3000002000 C 23772480 0x3000002450: dl_main (in /lib64/ld-2.5.so)
Figure 7.8: Output of the pagein Tool
The
second column specifies the address of the page which is paged-in.
Whether it is a code or data page is indicated in the third column, which contains
`C' or `D' respectively. The fourth column specifies the number of
cycles which passed since the first page fault. The rest of the line
is valgrind's attempt to find a name for the address which caused the page fault.
The address value itself is correct but the name is not always
accurate if no debug information is available.
In the example in Figure 7.8, execution starts at address
0x3000000B50, which forces the page at address 0x3000000000
to be paged in. Shortly after that, the page after this is also
brought in; the function called on that page is _dl_start. The
initial code accesses a variable on page 0x7FF000000. This
happens just 3,320 cycles after the first page fault and is most
likely the second instruction of the program (just three bytes after
the first instruction). If one looks at the program, one will notice
that there is something peculiar about this memory access. The
instruction in question is a call instruction, which does not
explicitly load or store data. It does store the return address on
the stack, though, and this is exactly what happens here. This is not
the official stack of the process, though, it is valgrind's internal
stack of the application. This means when interpreting the results of
pagein it is important to keep in mind that valgrind introduces some
artifacts.
The output of pagein can be used to determine which code sequences
should ideally be adjacent in the program code. A quick look at the
/lib64/ld-2.5.so code shows that the first instructions
immediately call the function _dl_start, and that these two
places are on different pages. Rearranging the code to move the code
sequences onto the same page can avoid—or at least delay—a page
fault. It is, so far, a cumbersome process to determine what the optimal
code layout should be. Since the second use of a page is, by design, not recorded,
one needs to use trial and error to see the effects of a change.
Using call graph analysis, it is possible to guess about possible call
sequences; this might help speed up the process of sorting the
functions and variables.
At a very coarse level, the call sequences can be seen by looking a the
object files making up the executable or DSO. Starting with one or
more entry points (i.e., function names), the chain of dependencies
can be computed. Without much effort this works well at the object
file level. In each round, determine which object files contain
needed functions and variables. The seed set has to be specified
explicitly. Then determine all undefined references in those object
files and add them to the set of needed symbols. Repeat until the
set is stable.
The second step in the process is to determine an order. The various
object files have to be grouped together to fill as few pages as
possible. As an added bonus, no function should cross over a page
boundary. A complication in all this is that, to
best arrange the object files, it has to be known what the linker will
do later. The important fact here is that the linker will put the
object files into the executable or DSO in the same order in which
they appear in the input files (e.g., archives), and on the command
line. This gives the programmer sufficient control.
For those who are willing to invest a bit more time, there have been
successful attempts at reordering made using automatic call tracing
via the __cyg_profile_func_enter and
__cyg_profile_func_exit hooks gcc inserts when
called with the -finstrument-functions option
[oooreorder]. See the gcc manual for more information on these
__cyg_* interfaces. By creating a trace of the program execution, the
programmer can more accurately determine the call chains. The results in
[oooreorder] are a 5% decrease in start-up costs, just through
reordering of the functions. The main benefit is the reduced number
of page faults, but the TLB cache also plays a role—an increasingly
important role given that, in virtualized environments, TLB misses
become significantly more expensive.
By combining the analysis of the pagein tool with the call sequence
information, it should be possible to optimize certain phases of the
program (such as start-up) to minimize the number of page faults.
The Linux kernel provides two additional mechanisms to avoid page
faults. The first one is a flag for mmap which instructs the
kernel to not only modify the page table but, in fact, to pre-fault all the
pages in the mapped area. This is achieved by simply adding the
MAP_POPULATE flag to the fourth parameter of the mmap
call. This will cause the mmap call to be significantly more
expensive, but, if all pages which are mapped by the call are being used
right away, the benefits can be large. Instead of having a number of
page faults, which each are pretty expensive due to the overhead
incurred by synchronization requirements etc., the program would have
one, more expensive, mmap call. The use of this flag has
disadvantages, though, in cases where a large portion of the mapped pages are
not used soon (or ever) after the call. Mapped, unused pages are
obviously a waste of time and memory. Pages which are immediately
pre-faulted and only much later used also can clog up the system. The
memory is allocated before it is used and this might lead to
shortages of memory in the meantime. On the other hand, in the worst case,
the page is simply reused for a new purpose (since it has not been modified
yet), which is not that expensive but still, together with the allocation,
adds some cost.
The granularity of MAP_POPULATE is simply too coarse. And there
is a second possible problem: this is an optimization; it is not
critical that all pages are, indeed, mapped in.
If the system is too busy to perform the operation the
pre-faulting can be dropped. Once the page is really used the program
takes the page fault, but this is not worse than artificially creating
resource scarcity. An alternative is to use the
POSIX_MADV_WILLNEED advice with the posix_madvise
function. This is a hint to the operating system that, in the near
future, the program will need the page described in the call. The
kernel is free to ignore the advice, but it also can pre-fault pages.
The advantage here is that the granularity is finer. Individual pages
or page ranges in any mapped address space area can be pre-faulted.
For memory-mapped files which contain a lot of data which is not used
at runtime, this can have huge advantages over using
MAP_POPULATE.
Beside these active approaches to minimizing the number of page faults,
it is also possible to take a more passive approach which is popular
with the hardware designers. A DSO occupies neighboring pages in the
address space, one range of pages each for the code and the data. The
smaller the page size, the more pages are needed to hold the DSO.
This, in turn, means more page faults, too. Important here is that the
opposite is also true. For larger page sizes, the number of necessary
pages for the mapping (or anonymous memory) is reduced; with it falls
the number of page faults.
Most architectures support page sizes of 4k. On IA-64 and PPC64, page
sizes of 64k are also popular. That means the smallest unit in which
memory is given out is 64k. The value has to be specified when
compiling the kernel and cannot be changed dynamically (at least not at
the moment). The ABIs of the multiple-page-size architectures are
designed to allow running an application with either page size. The
runtime will make the necessary adjustments, and a correctly-written program will
not notice a thing. Larger page sizes mean more waste through
partially-used pages, but, in some situations, this is OK.
Most architectures also support very large page sizes of 1MB or more.
Such pages are useful in some situations, too, but it makes no sense
to have all memory given out in units that large. The waste of
physical RAM would simply be too large. But very large pages have their
advantages: if huge data sets are used,
storing them in 2MB pages on x86-64 would require 511 fewer page faults (per
large page) than using
the same amount of memory with 4k pages. This can make a big
difference. The solution is to selectively request memory allocation
which, just for the requested address range, uses huge memory pages and,
for all the other mappings in the same process, uses the normal page size.
Huge page sizes come with a price, though. Since the physical memory
used for large pages must be continuous, it might, after a while, not be
possible to allocate such pages due to memory fragmentation.
prevent this. People are working on memory defragmentation and
fragmentation avoidance, but
it is very complicated. For large pages of, say, 2MB the necessary 512
consecutive pages are always hard to come by, except at one time:
when the system boots up. This is why the current solution for
large pages requires the use of a special filesystem,
hugetlbfs. This pseudo filesystem is allocated on request by
the system administrator by writing the number of huge pages which should
be reserved to
/proc/sys/vm/nr_hugepages
the number of huge pages which should be reserved. This operation
might fail if not enough continuous memory can be located. The
situation gets especially interesting if virtualization is used. A
system virtualized using the VMM model does not directly access
physical memory and, therefore, cannot by itself allocate the
hugetlbfs. It has to rely on the VMM, and this feature is not
guaranteed to be supported. For the KVM model, the Linux kernel
running the KVM module can perform the hugetlbfs allocation and
possibly pass a subset of the pages thus allocated on to one of the
guest domains.
Later, when a program needs a large page, there are
multiple possibilities:
- the program can use System V shared memory with the
SHM_HUGETLB flag.
- the hugetlbfs filesystem can actually be mounted and the
program can then create a file under the mount point and use
mmap to map one or more pages as anonymous memory.
In the first case, the hugetlbfs need not be mounted. Code
requesting one or more large pages could look like this:
key_t k = ftok("/some/key/file", 42);
int id = shmget(k, LENGTH, SHM_HUGETLB|IPC_CREAT|SHM_R|SHM_W);
void *a = shmat(id, NULL, 0);
The critical parts of this code sequence are the use of the
SHM_HUGETLB flag and the choice of the right value for
LENGTH, which must be a multiple of the huge page size for the
system. Different architectures have different values. The use of
the System V shared memory interface has the nasty problem of
depending on the key argument to differentiate (or share) mappings. The
ftok interface can easily produce conflicts which is why, if
possible, it is better to use other mechanisms.
If the requirement to mount the hugetlbfs filesystem is not a problem,
it is better to use it instead of System V shared memory. The only
real problems with using the special filesystem are that the kernel
must support it, and that there is no standardized mount point yet.
Once the filesystem is mounted, for instance at /dev/hugetlb, a
program can make easy use of it:
int fd = open("/dev/hugetlb/file1", O_RDWR|O_CREAT, 0700);
void *a = mmap(NULL, LENGTH, PROT_READ|PROT_WRITE, fd, 0);
By using the same file name in the open call, multiple processes
can share the same huge pages and collaborate. It is also possible to
make the pages executable, in which case the PROT_EXEC flag must
also be set in the mmap call. As in the System V shared memory
example, the value of LENGTH must be a multiple of the system's huge page
size.
A defensively-written program (as all programs should be) can determine
the mount point at runtime using a function like this:
char *hugetlbfs_mntpoint(void) {
char *result = NULL;
FILE *fp = setmntent(_PATH_MOUNTED, "r");
if (fp != NULL) {
struct mntent *m;
while ((m = getmntent(fp)) != NULL)
if (strcmp(m->mnt_fsname, "hugetlbfs") == 0) {
result = strdup(m->mnt_dir);
break;
}
endmntent(fp);
}
return result;
}
More information for both these cases can be found in the
hugetlbpage.txt file which comes as part of the kernel source tree.
The file also describes the special handling needed for IA-64.
Figure 7.9: Follow with Huge Pages, NPAD=0
To illustrate the advantages of huge pages, Figure 7.9 shows the results of
running the random Follow test for NPAD=0. This is the same data
shown in Figure 3.15, but, this time, we measure the data also
with memory allocated in huge pages. As can be seen the performance
advantage can be huge. For 220 bytes the test using huge pages
is 57% faster. This is due to the fact that this size still fits
completely into one single 2MB page and, therefore, no DTLB misses
occur.
After this point, the winnings are initially smaller but grow
again with increasing working set size. The huge pages test is 38%
faster for the 512MB working set size. The curve for the huge page
test has a plateau at around 250 cycles. Beyond working sets of
227 bytes, the numbers rise significantly again. The reason for
the plateau is that 64 TLB entries for 2MB pages cover 227 bytes.
As these numbers show, a large part of the costs of using large
working set sizes comes from TLB misses. Using the interfaces
described in this section can pay off big-time. The numbers in the
graph are, most likely, upper limits, but even real-world programs show a
significant speed-up. Databases, since they use large amounts of
data, are among the programs which use huge pages today.
There is currently no way to use large pages to map file-backed data.
There is interest in implementing this capability, but the proposals made so far
all involve explicitly using large pages, and they rely on the
hugetlbfs filesystem. This is not acceptable: large page use
in this case must be transparent. The kernel can easily determine
which mappings are large and automatically use large pages. A big
problem is that the kernel does not always know about the use
pattern. If the memory, which could be mapped as a large page, later
requires 4k-page granularity (for instance, because the protection of
parts of the memory range is changed using mprotect) a lot of
precious resources, in particular the linear physical memory, will have been wasted.
So it will certainly be some more time before such an approach is
successfully implemented.
Comments (18 posted)
Page editor: Jonathan Corbet
Security
By Jake Edge
November 7, 2007
An interesting look at the arguments
made by the US Government in a email privacy case serve as yet another
reminder that email is not private. For both technical and, now,
potentially legal reasons, email that you send is not protected from prying
eyes. Even for jurisdictions that have a bit more regard for privacy than
the US does, the cleartext nature of email communication should be enough
incentive to use encryption, at least on sensitive emails. But, even among
highly technical users, email encryption is quite rare.
In the article, attorney Mark Rasch describes what privacy is, from a
constitutional standpoint, as well as the test the US Supreme Court used to
determine privacy rights. "Constitutional privacy" simply governs whether
the government is required to get a warrant before using a particular
piece of evidence against a defendant, which is a bit different than the
usual definition. In the current case, the government seeks to introduce
email that it gathered without a warrant – its claim is that none is
required.
The case that essentially created privacy rights in the US was a 1963 case
involving payphone privacy and the Supreme Court decided on a two question
test to determine whether there was a privacy right or not. Those questions
boil down to whether the person believed what they were doing was private and
whether society as a whole would agree. In the current case, the government
is arguing that because the terms of service (TOS) of an ISP allow the ISP to
monitor email, anyone using that service has no reasonable expectation of
privacy. Thus, a subpoena, rather than a warrant, is all that is required to
use the defendant's email against him.
A subpoena is much easier to get, with much less specificity about what
kind of evidence is being sought. A prosecutor could subpoena someone's
entire stored email archive from an ISP, but a warrant would need to
indicate what kind of evidence, for which alleged crimes, was being
sought. Email that was evidence of a different crime would not be
admissible. At least in theory.
This would appear to be an end run around the Electronic Communications Privacy
Act (ECPA), which was passed to specifically protect electronic
communications in the same way that telephone calls are protected. The
current administration's assault on telephone privacy notwithstanding, ECPA
clearly extends the wiretapping laws and warrant requirements into the
realm of internet communications. A regulation
passed by Congress can add additional privacy safeguards, beyond what the
Supreme Court decided, as long as the safeguards are not unconstitutional
themselves. How the Justice Department intends to circumvent ECPA is not
clear, but hopefully the defendant's lawyers and the judge won't ignore it
as well as the Justice Department has. A decision in the case is still
pending.
Perhaps the most chilling portion of the government's argument is that it
didn't even need a subpoena; that the email could be introduced as evidence
no matter how it was acquired. Their argument once again rests on
the TOS that folks agree to with their email providers (ISPs or on-line
services like GMail), which, because it gives the provider the right to
look at the email, makes email inherently non-private. So the government
can collect it in secret rooms at AT&T and use it as they see fit. That's
not quite how they put it in their arguments, but that is the upshot.
With luck, the courts will see things just a tad differently, especially in
light of ECPA. This will hopefully leave us with only the technical side of
email privacy to deal with. For that, there are plenty of tools available,
they just don't seem to see much use.
Most modern mail user agents have some kind of encryption capability,
usually in the form of an OpenPGP (RFC 2440)
compliant message handler. This open encryption standard has been around
for a long time, is well-supported, and not too terribly difficult to use.
So why do the vast majority of emails go out unencrypted?
There are a number of reasons, probably. For one thing, the vast majority
of email is spam these days; encryption probably lessens their impact,
though it may help them avoid spam filters in the future. Of the rest,
most of what is sent as email probably doesn't seem to require much in the
way of privacy. Some of it is going to public mailing lists, others are
reminding the spouse to get milk on the way home, and the rest is one of
several bad jokes that have now been forwarded enough times that the
indentation level puts the actual text on a monitor next door. But, seriously, it is
only a small subset of email that needs encryption.
Even that small subset is probably not encrypted, at least in the author's
experience. Certainly the Tor
eavesdropping exercise indicated that even governments tend not to use
encryption for at least some of their diplomatic traffic. It almost
certainly comes down to convenience; dealing with keys, key exchanges, and
key management is more trouble than it is worth. Unfortunately, there is
no silver bullet solution to that problem; in order to have good
encryption, you must have good keys.
Encrypted email should be fairly private, but it is certainly not
bulletproof. Because it is so rarely used today, sending encrypted email
might attract unwanted attention from entities monitoring internet
traffic. But, as long as both parties maintain the secrecy of their keys,
possibly under the threat of imprisonment for contempt of court, there is
no known method for decrypting the message in a reasonable timeframe
(key-length and cipher-strength dependent, of course). If we really want
privacy for our emails, encryption is the right path.
Comments (15 posted)
Security reports
Daniel J. Bernstein has posted
a paper looking back at
the security of qmail [PDF], ten years after 1.0 came out.
"
In retrospect, some of qmail's "security" mechanisms were half-baked
ideas that didn't actually accomplish anything and that could have been
omitted with no loss of security. Other mechanisms have been responsible
for qmail's successful security track record. My main goal in this paper is
to explain how this difference could have been recognized in advance--how
software-engineering techniques can be measured for their long-term
security impact."
Comments (83 posted)
New vulnerabilities
conga: denial of service
| Package(s): | conga |
CVE #(s): | CVE-2007-4136
|
| Created: | November 7, 2007 |
Updated: | November 22, 2007 |
| Description: |
A flaw was found in ricci during a code audit. A remote attacker who is
able to connect to ricci could cause ricci to temporarily refuse additional
connections, a denial of service (CVE-2007-4136). |
| Alerts: |
|
Comments (none posted)
coolkey: temporary file vulnerability
| Package(s): | coolkey |
CVE #(s): | CVE-2007-4129
|
| Created: | November 7, 2007 |
Updated: | November 7, 2007 |
| Description: |
Steve Grubb discovered a flaw in the way coolkey created a temporary
directory. A local attacker could perform a symlink attack and cause
arbitrary files to be overwritten. (CVE-2007-4129)
|
| Alerts: |
|
Comments (none posted)
firefox: multiple vulnerabilities
| Package(s): | firefox |
CVE #(s): | |
| Created: | November 6, 2007 |
Updated: | November 7, 2007 |
| Description: |
update to 1.5.0.12 |
| Alerts: |
|
Comments (none posted)
gftp: buffer overflows
| Package(s): | gftp |
CVE #(s): | CVE-2007-3962
CVE-2007-3961
|
| Created: | November 2, 2007 |
Updated: | January 22, 2008 |
| Description: |
Kalle Olavi Niemitalo discovered two boundary errors in fsplib code
included in gFTP when processing overly long directory or file names. A
remote attacker could trigger these vulnerabilities by enticing a user to
download a file with a specially crafted directory or file name, possibly
resulting in the execution of arbitrary code (CVE-2007-3962) or a Denial of
Service (CVE-2007-3961). |
| Alerts: |
|
Comments (none posted)
hugin: unsafe temporary file usage
| Package(s): | hugin |
CVE #(s): | CVE-2007-5200
|
| Created: | November 6, 2007 |
Updated: | December 6, 2007 |
| Description: |
hugin in SUSE openSUSE 10.2 and 10.3 allows local users to overwrite
arbitrary files via a symlink attack on a temporary file. |
| Alerts: |
|
Comments (none posted)
liferea: weak permissions
| Package(s): | liferea |
CVE #(s): | CVE-2007-5751
|
| Created: | November 2, 2007 |
Updated: | December 22, 2008 |
| Description: |
Liferea before 1.4.6 uses weak permissions (0644) for the feedlist.opml backup file, which allows local users to obtain credentials. |
| Alerts: |
|
Comments (1 posted)
mcstrans: denial of service
| Package(s): | mcstrans |
CVE #(s): | CVE-2007-4570
|
| Created: | November 7, 2007 |
Updated: | November 7, 2007 |
| Description: |
An algorithmic complexity weakness was found in the way the mcstrans daemon
handled ranges of compartments in sensitivity labels. A local user could
trigger this flaw causing mctransd to temporarily stop responding to other
requests; a partial denial of service. (CVE-2007-4570) |
| Alerts: |
|
Comments (none posted)
mono: arbitrary code execution via integer overflow
| Package(s): | mono |
CVE #(s): | CVE-2007-5197
|
| Created: | November 6, 2007 |
Updated: | December 7, 2009 |
| Description: |
From the Debian advisory: An integer overflow in the BigInteger data type implementation has been
discovered in the free .NET runtime Mono.
|
| Alerts: |
|
Comments (none posted)
nagios-plugins: check_snmp buffer overflow
| Package(s): | nagios-plugins |
CVE #(s): | CVE-2007-5623
|
| Created: | November 2, 2007 |
Updated: | April 17, 2008 |
| Description: |
Buffer overflow in the check_snmp function in Nagios Plugins (nagios-plugins) 1.4.10 allows remote attackers to cause a denial of service (crash) via crafted snmpget replies. |
| Alerts: |
|
Comments (none posted)
pcre: two arbitrary code execution vulnerabilities
| Package(s): | pcre |
CVE #(s): | CVE-2007-1659
CVE-2007-1660
|
| Created: | November 6, 2007 |
Updated: | July 16, 2008 |
| Description: |
Multiple flaws were found in the way pcre handles certain malformed regular
expressions. If an application linked against pcre, such as Konqueror,
parses a malicious regular expression, it may be possible to run arbitrary
code as the user running the application. (CVE-2007-1659, CVE-2007-1660) |
| Alerts: |
|
Comments (none posted)
perdition: arbitrary code execution via crafted IMAP tag
| Package(s): | perdition |
CVE #(s): | CVE-2007-5740
|
| Created: | November 6, 2007 |
Updated: | November 7, 2007 |
| Description: |
From the Debian advisory:
Bernhard Mueller of SEC Consult has discovered a format string
vulnerability in perdition, an IMAP proxy. This vulnerability could
allow an unauthenticated remote user to run arbitrary code on the
perdition server by providing a specially formatted IMAP tag. |
| Alerts: |
|
Comments (none posted)
perl: arbitrary code execution
| Package(s): | Perl |
CVE #(s): | CVE-2007-5116
|
| Created: | November 6, 2007 |
Updated: | December 5, 2007 |
| Description: |
A flaw was found in Perl's regular expression engine. Specially crafted
input to a regular expression can cause Perl to improperly allocate memory,
possibly resulting in arbitrary code running with the permissions of the
user running Perl. (CVE-2007-5116)
|
| Alerts: |
|
Comments (none posted)
phpMyAdmin: cross-site scripting vulnerabilities
| Package(s): | phpMyAdmin |
CVE #(s): | CVE-2007-5386
CVE-2007-5589
|
| Created: | November 2, 2007 |
Updated: | March 14, 2008 |
| Description: |
Cross-site scripting (XSS) vulnerability in scripts/setup.php in phpMyAdmin
2.11.1, when accessed by a browser that does not URL-encode requests,
allows remote attackers to inject arbitrary web script or HTML via the
query string.
Multiple cross-site scripting (XSS) vulnerabilities in phpMyAdmin before
2.11.1.2 allow remote attackers to inject arbitrary web script or HTML via
certain input available in (1) PHP_SELF in (a) server_status.php, and (b)
grab_globals.lib.php, (c) display_change_password.lib.php, and (d)
common.lib.php in libraries/; and certain input available in PHP_SELF and
(2) PATH_INFO in libraries/common.inc.php. NOTE: there might also be other
vectors related to (3) REQUEST_URI. |
| Alerts: |
|
Comments (none posted)
pidgin: denial of service
| Package(s): | pidgin |
CVE #(s): | CVE-2007-4999
|
| Created: | November 2, 2007 |
Updated: | November 29, 2007 |
| Description: |
libpurple in Pidgin 2.1.0 through 2.2.1, when using HTML logging, allows
remote attackers to cause a denial of service (NULL dereference and
application crash) via a message that contains invalid HTML data, a
different vector than CVE-2007-4996. |
| Alerts: |
|
Comments (none posted)
sitebar: multiple vulnerabilities
| Package(s): | sitebar |
CVE #(s): | CVE-2007-5491
CVE-2007-5694
CVE-2007-5492
CVE-2007-5693
CVE-2007-5695
CVE-2007-5692
|
| Created: | November 7, 2007 |
Updated: | December 7, 2007 |
| Description: |
Tim Brown discovered these multiple issues: the translation module does
not properly sanitize the value to the "dir" parameter (CVE-2007-5491,
CVE-2007-5694); the translation module also does not sanitize the
values of the "edit" and "value" parameters which it passes to eval()
and include() (CVE-2007-5492, CVE-2007-5693); the log-in command does
not validate the URL to redirect users to after logging in
(CVE-2007-5695); SiteBar also contains several cross-site scripting
vulnerabilities (CVE-2007-5692).
|
| Alerts: |
|
Comments (none posted)
thunderbird: multiple vulnerabilities
| Package(s): | thunderbird |
CVE #(s): | |
| Created: | November 6, 2007 |
Updated: | November 7, 2007 |
| Description: |
update to 1.5.0.12 |
| Alerts: |
|
Comments (none posted)
Updated vulnerabilities
acroread: multiple vulnerabilities
| Package(s): | acroread |
CVE #(s): | CVE-2006-5857
CVE-2007-0045
CVE-2007-0046
|
| Created: | January 11, 2007 |
Updated: | October 26, 2009 |
| Description: |
Adobes acrobat reader has the following vulnerabilities:
The Adobe Reader Plugin has a cross site scripting vulnerability that
can be triggered by processes malformed URLs. Arbitrary JavaScript can
be served by a malicious web server, leading to a cross-site scripting
attack.
Maliciously crafted PDF files can be used to trigger two vulnerabilities,
if an attacker can trick a user into viewing the files, arbitrary code
can be executed with the user's privileges. |
| Alerts: |
|
Comments (1 posted)
apache2: information disclosure
| Package(s): | apache |
CVE #(s): | CVE-2007-1862
|
| Created: | June 20, 2007 |
Updated: | February 18, 2008 |
| Description: |
From the Mandriva advisory: "The recall_headers function in mod_mem_cache in Apache 2.2.4 does not
properly copy all levels of header data, which can cause Apache to
return HTTP headers containing previously-used data, which could be
used to obtain potentially sensitive information by unauthorized users." |
| Alerts: |
|
Comments (2 posted)
apache: multiple vulnerabilities
| Package(s): | apache |
CVE #(s): | CVE-2007-3304
CVE-2006-5752
|
| Created: | June 27, 2007 |
Updated: | February 18, 2008 |
| Description: |
The Apache HTTP Server did not verify that a process was an Apache child
process before sending it signals. A local attacker who has the ability to
run scripts on the Apache HTTP Server could manipulate the scoreboard and
cause arbitrary processes to be terminated, which could lead to a denial of
service. (CVE-2007-3304)
A flaw was found in the Apache HTTP Server mod_status module. Sites with
the server-status page publicly accessible and ExtendedStatus enabled were
vulnerable to a cross-site scripting attack. On Red Hat Enterprise Linux
the server-status page is not enabled by default and it is best practice to
not make this publicly available. (CVE-2006-5752) |
| Alerts: |
|
Comments (1 posted)
apache: cross-site scripting
| Package(s): | apache |
CVE #(s): | CVE-2006-3918
|
| Created: | August 9, 2006 |
Updated: | April 4, 2008 |
| Description: |
From the Red Hat advisory: "A bug was found in Apache where an invalid Expect header sent to the server
was returned to the user in an unescaped error message. This could
allow an attacker to perform a cross-site scripting attack if a victim was
tricked into connecting to a site and sending a carefully crafted Expect
header." |
| Alerts: |
|
Comments (none posted)
httpd: denial of service, cross-site scripting
| Package(s): | apache httpd |
CVE #(s): | CVE-2007-3847
CVE-2007-4465
|
| Created: | September 25, 2007 |
Updated: | February 15, 2008 |
| Description: |
A flaw was found in the mod_proxy module. On sites where a reverse proxy is
configured, a remote attacker could send a carefully crafted request that
would cause the Apache child process handling that request to crash. On
sites where a forward proxy is configured, an attacker could cause a
similar crash if a user could be persuaded to visit a malicious site using
the proxy. This could lead to a denial of service if using a threaded
Multi-Processing Module. (CVE-2007-3847)
A flaw was found in the mod_autoindex module. On sites where directory
listings are used, and the AddDefaultCharset directive has been removed
from the configuration, a cross-site-scripting attack may be possible
against browsers which do not correctly derive the response character set
following the rules in RFC 2616. (CVE-2007-4465) |
| Alerts: |
|
Comments (none posted)
avahi: denial of service
| Package(s): | avahi |
CVE #(s): | CVE-2007-3372
|
| Created: | June 28, 2007 |
Updated: | December 23, 2008 |
| Description: |
Avahi is vulnerable to a local denial of service that can be caused by
making an erroneous call to the assert() function. |
| Alerts: |
|
Comments (none posted)
bochs: buffer overflow
| Package(s): | bochs |
CVE #(s): | CVE-2007-2893
|
| Created: | July 20, 2007 |
Updated: | November 19, 2007 |
| Description: |
A heap-based buffer overflow in the bx_ne2k_c::rx_frame function in
iodev/ne2k.cc in the emulated NE2000 device in Bochs 2.3 allows local users
of the guest operating system to write to arbitrary memory locations and
gain privileges on the host operating system via vectors that cause TXCNT
register values to exceed the device memory size, aka "RX Frame heap
overflow." |
| Alerts: |
|
Comments (none posted)
cacti: denial of service
| Package(s): | cacti |
CVE #(s): | CVE-2007-3112
CVE-2007-3113
|
| Created: | September 18, 2007 |
Updated: | December 16, 2009 |
| Description: |
A vulnerability in Cacti 0.8.6i and earlier versions allows remote
authenticated users to cause a denial of service (CPU consumption) via
large values of the graph_start, graph_end, graph_height, or graph_width
parameters. |
| Alerts: |
|
Comments (none posted)
centericq: buffer overflows
| Package(s): | centericq |
CVE #(s): | CVE-2007-3713
|
| Created: | July 20, 2007 |
Updated: | December 17, 2007 |
| Description: |
Multiple buffer overflows in Konst CenterICQ 4.9.11 through 4.21 allow
remote attackers to execute arbitrary code via unspecified vectors. NOTE:
the provenance of this information is unknown; the details are obtained
solely from third party information. NOTE: this might overlap
CVE-2007-0160. |
| Alerts: |
|
Comments (none posted)
clamav: denial of service
| Package(s): | clamav |
CVE #(s): | CVE-2007-3725
|
| Created: | July 24, 2007 |
Updated: | February 27, 2008 |
| Description: |
A NULL pointer dereference has been discovered in the RAR VM of Clam
Antivirus (ClamAV) which allows user-assisted remote attackers to
cause a denial of service via a specially crafted RAR archives. |
| Alerts: |
|
Comments (none posted)
clamav: multiple vulnerabilities
| Package(s): | clamav |
CVE #(s): | CVE-2007-4510
CVE-2007-4560
|
| Created: | September 3, 2007 |
Updated: | February 13, 2008 |
| Description: |
Several remote vulnerabilities have been discovered in the Clam anti-virus
toolkit. The Common Vulnerabilities and Exposures project identifies the
following problems:
CVE-2007-4510:
It was discovered that the RTF and RFC2397 parsers can be tricked
into dereferencing a NULL pointer, resulting in denial of service.
CVE-2007-4560:
It was discovered clamav-milter performs insufficient input
sanitizing, resulting in the execution of arbitrary shell commands.
|
| Alerts: |
|
Comments (none posted)
cpio: arbitrary code execution
| Package(s): | cpio |
CVE #(s): | CVE-2005-4268
|
| Created: | January 2, 2006 |
Updated: | March 17, 2010 |
| Description: |
Richard Harms discovered that cpio did not sufficiently validate file
properties when creating archives. Files with e. g. a very large size
caused a buffer overflow. By tricking a user or an automatic backup
system into putting a specially crafted file into a cpio archive, a
local attacker could probably exploit this to execute arbitrary code
with the privileges of the target user (which is likely root in an
automatic backup system). |
| Alerts: |
|
Comments (none posted)
vixie-cron: privilege escalation
| Package(s): | cron |
CVE #(s): | CVE-2006-2607
|
| Created: | May 31, 2006 |
Updated: | June 1, 2009 |
| Description: |
The Vixie cron daemon does not check the return code from setuid(); if that call can be made to fail, a local attacker may be able to execute commands as root. |
| Alerts: |
|
Comments (1 posted)
cscope: buffer overflows
| Package(s): | cscope |
CVE #(s): | CVE-2006-4262
|
| Created: | October 2, 2006 |
Updated: | June 16, 2009 |
| Description: |
Will Drewry of the Google Security Team discovered several buffer overflows
in cscope, a source browsing tool, which might lead to the execution of
arbitrary code. |
| Alerts: |
|
Comments (none posted)
cscope: buffer overflows
| Package(s): | cscope |
CVE #(s): | CVE-2004-2541
|
| Created: | May 22, 2006 |
Updated: | June 19, 2009 |
| Description: |
A buffer overflow in Cscope 15.5, and possibly multiple overflows, allows
remote attackers to execute arbitrary code via a C file with a long
#include line that is later browsed by the target. |
| Alerts: |
|
Comments (1 posted)
cups: denial of service
| Package(s): | cups |
CVE #(s): | CVE-2007-0720
|
| Created: | March 26, 2007 |
Updated: | February 7, 2008 |
| Description: |
Previous versions of the cups package could be forced to hang via a client
"partially negotiating" an ssl connection. In this state, cups would not
allow other connections to be made, a denial of service. |
| Alerts: |
|
Comments (none posted)
cups: buffer overflow
| Package(s): | cups |
CVE #(s): | CVE-2007-4351
|
| Created: | October 31, 2007 |
Updated: | November 19, 2007 |
| Description: |
The CUPS code charged with dealing with TCP-based Internet Printer Protocol connections suffers from a buffer overflow which could possibly be exploitable remotely. The vulnerability is only present if remote hosts are allowed to connect to the IPP port, which is usually not the default setting. |
| Alerts: |
|
Comments (none posted)
gpdf: integer overflow
| Package(s): | cups poppler xpdf |
CVE #(s): | CVE-2007-3387
|
| Created: | July 31, 2007 |
Updated: | November 28, 2007 |
| Description: |
The gpdf library contains an integer overflow which can be exploited via a malicious PDF file. This code finds its way into multiple packages, including xpdf, kpdf, poppler, cups, and more. |
| Alerts: |
|
Comments (1 posted)
debian-goodies: privilege escalation
| Package(s): | debian-goodies |
CVE #(s): | CVE-2007-3912
|
| Created: | October 5, 2007 |
Updated: | March 24, 2008 |
| Description: |
Thomas de Grenier de Latour discovered that the checkrestart program included
in debian-goodies did not correctly handle shell meta-characters. A local
attacker could exploit this to gain the privileges of the user running
checkrestart. |
| Alerts: |
|
Comments (none posted)
dovecot: privilege escalation
| Package(s): | dovecot |
CVE #(s): | CVE-2007-4211
|
| Created: | August 15, 2007 |
Updated: | May 21, 2008 |
| Description: |
From the rPath advisory: "Previous versions of the dovecot package are vulnerable to a
minor privilege escalation attack in which an authenticated
user may exploit an ACL plugin weakness to save message flags
without having proper permissions." |
| Alerts: |
|
Comments (none posted)
dovecot: directory traversal
| Package(s): | dovecot |
CVE #(s): | CVE-2007-2231
|
| Created: | May 8, 2007 |
Updated: | May 21, 2008 |
| Description: |
Directory traversal vulnerability in index/mbox/mbox-storage.c in Dovecot
before 1.0.rc29, when using the zlib plugin, allows remote attackers to
read arbitrary gzipped (.gz) mailboxes (mbox files) via a .. (dot dot)
sequence in the mailbox name. |
| Alerts: |
|
Comments (none posted)
drupal: multiple vulnerabilities
| Package(s): | drupal |
CVE #(s): | CVE-2007-5593
CVE-2007-5594
CVE-2007-5595
CVE-2007-5596
CVE-2007-5597
|
| Created: | October 24, 2007 |
Updated: | December 7, 2007 |
| Description: |
From the Fedora advisory:
- Upgrade to 5.3, fixes:
- HTTP response splitting.
- Arbitrary code execution.
- Cross-site scripting.
- Cross-site request forgery.
- Access bypass.
|
| Alerts: |
|
Comments (none posted)
eggdrop: stack-based buffer overflow
| Package(s): | eggdrop |
CVE #(s): | CVE-2007-2807
|
| Created: | September 7, 2007 |
Updated: | December 8, 2009 |
| Description: |
A stack-based buffer overflow in mod/server.mod/servrmsg.c in Eggdrop
1.6.18, and possibly earlier, allows user-assisted, malicious remote IRC
servers to execute arbitrary code via a long private message. |
| Alerts: |
|
Comments (none posted)
elinks: code execution
| Package(s): | elinks |
CVE #(s): | CVE-2007-2027
|
| Created: | May 7, 2007 |
Updated: | October 30, 2009 |
| Description: |
Arnaud Giersch discovered that elinks incorrectly attempted to load
gettext catalogs from a relative path. If a user were tricked into
running elinks from a specific directory, a local attacker could execute
code with user privileges. |
| Alerts: |
|
Comments (none posted)
elinks: arbitrary file access
| Package(s): | elinks |
CVE #(s): | CVE-2006-5925
|
| Created: | November 16, 2006 |
Updated: | October 22, 2009 |
| Description: |
The elinks text-mode browser has an arbitrary file access vulnerability
in the Elinks SMB protocol handler. If a user can be tricked into
visiting a specially crafted web page, arbitrary files may be read or
written with the user's permissions. |
| Alerts: |
|
Comments (none posted)
evolution: format string error
| Package(s): | evolution |
CVE #(s): | CVE-2007-1002
|
| Created: | March 27, 2007 |
Updated: | February 27, 2008 |
| Description: |
A format string error in the "write_html()" function in calendar/gui/
e-cal-component-memo-preview.c when displaying a memo's categories can
potentially be exploited to execute arbitrary code via a specially crafted
shared memo containing format specifiers. |
| Alerts: |
|
Comments (1 posted)
evolution-data-server: malicious server arbitrary code execution
| Package(s): | evolution-data-server |
CVE #(s): | CVE-2007-3257
|
| Created: | June 18, 2007 |
Updated: | November 7, 2007 |
| Description: |
From the GNOME
bugzilla: "The "SEQUENCE" value in the GData of the IMAP code
(camel-imap-folder.c) is converted from a string using strtol. This allows
for negative values. The imap_rescan uses this value as an int. It checks
for !seq and seq>summary.length. It doesn't check for seq <
0. Although seq is used as the index of an array." |
| Alerts: |
|
Comments (1 posted)
pop mail man-in-the-middle attacks
| Package(s): | evolution thunderbird mutt fetchmail |
CVE #(s): | CVE-2007-1558
|
| Created: | May 8, 2007 |
Updated: | July 3, 2009 |
| Description: |
The APOP protocol allows remote attackers to guess the first 3 characters
of a password via man-in-the-middle (MITM) attacks that use crafted message
IDs and MD5 collisions. NOTE: this design-level issue potentially affects
all products that use APOP, including (1) Thunderbird, (2) Evolution, (3)
mutt, and (4) fetchmail. |
| Alerts: |
|
Comments (none posted)
fetchmail: denial of service
| Package(s): | fetchmail |
CVE #(s): | CVE-2007-4565
|
| Created: | September 5, 2007 |
Updated: | October 30, 2009 |
| Description: |
fetchmail before 6.3.9 allows context-dependent attackers to cause a denial of service (NULL dereference and application crash) by refusing certain warning messages that are sent over SMTP. |
| Alerts: |
|
Comments (none posted)
firebird: buffer overflow
| Package(s): | firebird |
CVE #(s): | CVE-2007-3181
|
| Created: | July 2, 2007 |
Updated: | March 27, 2008 |
| Description: |
The Firebird DBMS has a buffer overflow vulnerability involving
the processing of connect requests with an overly large p_cnct_count
value. Remote attackers can send a specially crafted
request to the server in order to potentially execute arbitrary code with
the permissions of the Firebird user. |
| Alerts: |
|
Comments (none posted)
firefox: multiple vulnerabilities
| Package(s): | firefox |
CVE #(s): | CVE-2007-3844
CVE-2007-3845
|
| Created: | August 1, 2007 |
Updated: | February 20, 2008 |
| Description: |
A flaw was discovered in handling of "about:blank" windows used by
addons. A malicious web site could exploit this to modify the contents,
or steal confidential data (such as passwords), of other web pages.
(CVE-2007-3844)
Jesper Johansson discovered that spaces and double-quotes were
not correctly handled when launching external programs. In rare
configurations, after tricking a user into opening a malicious web page,
an attacker could execute helpers with arbitrary arguments with the
user's privileges. (CVE-2007-3845) |
| Alerts: |
|
Comments (none posted)
firefox, thunderbird, seamonkey: multiple vulnerabilities
| Package(s): | firefox, thunderbird, seamonkey |
CVE #(s): | CVE-2007-3738
CVE-2007-3656
CVE-2007-3670
CVE-2007-3285
CVE-2007-3737
CVE-2007-3089
CVE-2007-3736
CVE-2007-3734
CVE-2007-3735
|
| Created: | July 18, 2007 |
Updated: | May 12, 2008 |
| Description: |
shutdown and moz_bug_r_a4 reported two separate ways to modify an
XPCNativeWrapper such that subsequent access by the browser would result in
executing user-supplied code. (CVE-2007-3738)
Michal Zalewski reported that it was possible to bypass the same-origin
checks and read from cached (wyciwyg) documents It is possible to access
wyciwyg:// documents without proper same domain policy checks through the
use of HTTP 302 redirects. This enables the attacker to steal sensitive
data displayed on dynamically generated pages; perform cache poisoning; and
execute own code or display own content with URL bar and SSL certificate
data of the attacked page (URL spoofing++). (CVE-2007-3656)
Internet Explorer calls registered URL protocols without escaping quotes
and may be used to pass unexpected and potentially dangerous data to the
application that registers that URL Protocol. (CVE-2007-3670)
Ronald van den Heetkamp reported that a filename URL containing %00
(encoded null) can cause Firefox to interpret the file extension
differently than the underlying Windows operating system potentially
leading to unsafe actions such as running a program. This is only
accessible locally. (CVE-2007-3285)
An attacker can use an element outside of a document to call an event
handler allowing content to run arbitrary code with chrome
privileges. (CVE-2007-3737)
Ronen Zilberman and Michal Zalewski both reported that it was possible to
exploit a timing issue to inject content into about:blank frames in a
page. When opening a window from a script, it is possible to spoof the
content of the newly opened window's frames within a short time frame,
while the window is loading. (CVE-2007-3089)
Mozilla contributor moz_bug_r_a4 demonstrated that the methods
addEventListener and setTimeout could be used to inject script into another
site in violation of the browser's same-origin policy. This could be used
to access or modify private or valuable information from that other
site. (CVE-2007-3736)
As part of the Firefox 2.0.0.5 update releases Mozilla developers fixed
many bugs to improve the stability of the product. Some of these crashes
that showed evidence of memory corruption under certain circumstances and
we presume that with enough effort at least some of these could be
exploited to run arbitrary code. Note: Thunderbird shares the browser
engine with Firefox and could be vulnerable if JavaScript were to be
enabled in mail. This is not the default setting and we strongly discourage
users from running JavaScript in mail. Without further investigation we
cannot rule out the possibility that for some of these an attacker might be
able to prepare memory for exploitation through some means other than
JavaScript, such as large images. (CVE-2007-3734, CVE-2007-3735) |
| Alerts: |
|
Comments (none posted)
flac: arbitrary code execution
| Package(s): | flac |
CVE #(s): | CVE-2007-4619
|
| Created: | October 22, 2007 |
Updated: | January 21, 2008 |
| Description: |
From the Red Hat advisory:
A security flaw was found in the way flac processed audio data. An
attacker could create a carefully crafted FLAC audio file in such a way that
it could cause an application linked with flac libraries to crash or execute
arbitrary code when it was opened. (CVE-2007-4619)
|
| Alerts: |
|
Comments (none posted)
freetype: arbitrary code execution
| Package(s): | freetype |
CVE #(s): | CVE-2007-2754
|
| Created: | May 24, 2007 |
Updated: | June 1, 2010 |
| Description: |
The Freetype font rendering library versions 2.3.4 and below
has an integer sign error. Remote attackers may be able to
create a specially crafted TrueType Font file with a negative
n_points value that will cause an integer overflow and heap-based
buffer overflow, allowing the execution of arbitrary code. |
| Alerts: |
|
Comments (none posted)
freetype: integer overflows
| Package(s): | freetype |
CVE #(s): | CVE-2006-0747
CVE-2006-1861
CVE-2006-2493
CVE-2006-2661
CVE-2006-3467
|
| Created: | June 8, 2006 |
Updated: | June 1, 2010 |
| Description: |
The FreeType library has several integer overflow vulnerabilities.
If a user can be tricked into installing a specially
crafted font file, arbitrary code can be executed with the privilege
of the user. |
| Alerts: |
|
Comments (none posted)
gallery2: multiple unspecified vulnerabilities
| Package(s): | gallery2 |
CVE #(s): | CVE-2007-4650
|
| Created: | September 5, 2007 |
Updated: | November 9, 2007 |
| Description: |
Multiple unspecified vulnerabilities in Gallery before 2.2.3 allow
attackers to (1) rename items, (2) read and modify item properties, or (3) lock and replace items
via unknown vectors in (a) the WebDAV module; and (4) edit unspecified data files using "linked
items" in (a) WebDAV and (b) Reupload modules. |
| Alerts: |
|
Comments (none posted)
gcc: file overwrite vulnerability
| Package(s): | gcc |
CVE #(s): | CVE-2006-3619
|
| Created: | September 6, 2006 |
Updated: | March 14, 2008 |
| Description: |
The fastjar utility found in the GNU compiler collection does not perform adequate file path checking, allowing the creation or overwriting of files outside of the current directory tree. |
| Alerts: |
|
Comments (none posted)
gd: buffer overflow
| Package(s): | gd |
CVE #(s): | CVE-2007-0455
|
| Created: | February 7, 2007 |
Updated: | November 18, 2009 |
| Description: |
The gd graphics library contains a buffer overflow which could enable a remote attacker to execute arbitrary code. Note that various other packages include code from gd and could also be vulnerable. |
| Alerts: |
|
Comments (2 posted)
gd: multiple vulnerabilities
| Package(s): | gd |
CVE #(s): | CVE-2007-3472
CVE-2007-3473
CVE-2007-3474
CVE-2007-3475
CVE-2007-3476
CVE-2007-3477
CVE-2007-3478
|
| Created: | August 6, 2007 |
Updated: | November 6, 2009 |
| Description: |
Integer overflow in gdImageCreateTrueColor function in the GD Graphics
Library (libgd) before 2.0.35 allows user-assisted remote attackers
to have unspecified remote attack vectors and impact. (CVE-2007-3472)
The gdImageCreateXbm function in the GD Graphics Library (libgd)
before 2.0.35 allows user-assisted remote attackers to cause a denial
of service (crash) via unspecified vectors involving a gdImageCreate
failure. (CVE-2007-3473)
Multiple unspecified vulnerabilities in the GIF reader in the
GD Graphics Library (libgd) before 2.0.35 allow user-assisted
remote attackers to have unspecified attack vectors and
impact. (CVE-2007-3474)
The GD Graphics Library (libgd) before 2.0.35 allows user-assisted
remote attackers to cause a denial of service (crash) via a GIF image
that has no global color map. (CVE-2007-3475)
Array index error in gd_gif_in.c in the GD Graphics Library (libgd)
before 2.0.35 allows user-assisted remote attackers to cause
a denial of service (crash and heap corruption) via large color
index values in crafted image data, which results in a segmentation
fault. (CVE-2007-3476)
The (a) imagearc and (b) imagefilledarc functions in GD Graphics
Library (libgd) before 2.0.35 allows attackers to cause a denial
of service (CPU consumption) via a large (1) start or (2) end angle
degree value. (CVE-2007-3477)
Race condition in gdImageStringFTEx (gdft_draw_bitmap) in gdft.c in the
GD Graphics Library (libgd) before 2.0.35 allows user-assisted remote
attackers to cause a denial of service (crash) via unspecified vectors,
possibly involving truetype font (TTF) support. (CVE-2007-3478) |
| Alerts: |
|
Comments (none posted)
gd: denial of service
| Package(s): | gd |
CVE #(s): | CVE-2007-2756
|
| Created: | June 14, 2007 |
Updated: | February 28, 2008 |
| Description: |
Libgd2 has a denial of service vulnerability involving the incorrect
validation of PNG callback results. If an application that is linked
against libgd2 is used to process a specially-crafted PNG file,
a denial of service involving CPU resource consumption can be
caused. |
| Alerts: |
|
Comments (none posted)
gedit: format string vulnerability
| Package(s): | gedit |
CVE #(s): | CAN-2005-1686
|
| Created: | June 9, 2005 |
Updated: | February 5, 2009 |
| Description: |
A format string vulnerability has been discovered in gedit. Calling
the program with specially crafted file names caused a buffer
overflow, which could be exploited to execute arbitrary code with the
privileges of the gedit user. |
| Alerts: |
|
Comments (1 posted)
gimp: multiple vulnerabilities
| Package(s): | gimp |
CVE #(s): | CVE-2007-2949
|
| Created: | June 28, 2007 |
Updated: | February 27, 2008 |
| Description: |
The gimp image editor has several vulnerabilities, including
a problem where it can open PSD files with excessive dimensions
and a possible stack overflow in the Sunras loader. |
| Alerts: |
|
Comments (none posted)
gnome-screensaver: keyboard lock bypass
| Package(s): | gnome-screensaver |
CVE #(s): | CVE-2007-3920
|
| Created: | October 24, 2007 |
Updated: | October 15, 2009 |
| Description: |
From the Ubuntu advisory:
Jens Askengren discovered that gnome-screensaver became confused when
running under Compiz, and could lose keyboard lock focus. A local
attacker could exploit this to bypass the user's locked screen saver. |
| Alerts: |
|
Comments (none posted)
openssh: inappropriate use of trusted cookies
| Package(s): | gnome-ssh-askpass openssh |
CVE #(s): | CVE-2007-4752
|
| Created: | September 11, 2007 |
Updated: | August 25, 2008 |
| Description: |
OpenSSH in versions prior
4.7 could use a trusted X11 cookie if the creation of an untrusted
cookie failed. |
| Alerts: |
|
Comments (none posted)
grip: buffer overflow
| Package(s): | grip |
CVE #(s): | CAN-2005-0706
|
| Created: | March 10, 2005 |
Updated: | November 19, 2008 |
| Description: |
Grip, a CD ripper, has a buffer overflow vulnerability that can
occur when the CDDB server returns more than 16 matches. |
| Alerts: |
|
Comments (none posted)
gzip: multiple vulnerabilities
| Package(s): | gzip |
CVE #(s): | CVE-2006-4334
CVE-2006-4335
CVE-2006-4336
CVE-2006-4337
CVE-2006-4338
|
| Created: | September 19, 2006 |
Updated: | January 20, 2010 |
| Description: |
Tavis Ormandy of the Google Security Team discovered two denial of service
flaws in the way gzip expanded archive files. If a victim expanded a
specially crafted archive, it could cause the gzip executable to hang or
crash.
Tavis Ormandy of the Google Security Team discovered several code execution
flaws in the way gzip expanded archive files. If a victim expanded a
specially crafted archive, it could cause the gzip executable to crash or
execute arbitrary code. |
| Alerts: |
|
Comments (1 posted)
horde-kronolith: local file inclusion
| Package(s): | horde-kronolith |
CVE #(s): | CVE-2006-6175
|
| Created: | January 17, 2007 |
Updated: | March 7, 2008 |
| Description: |
Kronolith contains a mistake in lib/FBView.php where a raw, unfiltered
string is used instead of a sanitized string to view local files. An
authenticated attacker could craft an HTTP GET request that uses directory
traversal techniques to execute any file on the web server as PHP code,
which could allow information disclosure or arbitrary code execution with
the rights of the user running the PHP application (usually the webserver
user). |
| Alerts: |
|
Comments (none posted)
hplip: arbitrary command execution
| Package(s): | hplip |
CVE #(s): | CVE-2007-5208
|
| Created: | October 12, 2007 |
Updated: | January 14, 2008 |
| Description: |
Kees Cook discovered a flaw in the way the hplip hpssd daemon handled user
input. A local attacker could send a specially crafted request to the hpssd
daemon, possibly allowing them to run arbitrary commands as the root user. |
| Alerts: |
|
Comments (none posted)
imagemagick: multiple vulnerabilities
| Package(s): | imagemagick |
CVE #(s): | CVE-2007-4985
CVE-2007-4986
CVE-2007-4987
CVE-2007-4988
|
| Created: | October 4, 2007 |
Updated: | August 11, 2009 |
| Description: |
The ImageMagick image decoders have multiple vulnerabilities.
If a user can be tricked into processing a specially crafted
DCM, DIB, XBM, XCF, or XWD image, arbitrary code may be executed with
the user's privileges. |
| Alerts: |
|
Comments (none posted)
ImageMagick: integer overflows
| Package(s): | imagemagick |
CVE #(s): | CVE-2007-1797
|
| Created: | April 4, 2007 |
Updated: | August 11, 2009 |
| Description: |
Multiple integer overflows in ImageMagick before 6.3.3-5 allow remote
attackers to execute arbitrary code via (1) a crafted DCM image, which
results in a heap-based overflow in the ReadDCMImage function, or (2) the
(a) colors or (b) comments field in a crafted XWD image, which results in a
heap-based overflow in the ReadXWDImage function, different issues than
CVE-2007-1667. |
| Alerts: |
|
Comments (none posted)
jasper: denial of service
| Package(s): | jasper |
CVE #(s): | CVE-2007-2721
|
| Created: | June 1, 2007 |
Updated: | April 19, 2010 |
| Description: |
The jpc_qcx_getcompparms function in jpc/jpc_cs.c could allow remote
user-assisted attackers to cause a denial of service (crash) and possibly
corrupt the heap via malformed image files. |
| Alerts: |
|
Comments (none posted)
java: multiple vulnerabilities
| Package(s): | java |
CVE #(s): | CVE-2006-4339
CVE-2006-4790
CVE-2006-6731
CVE-2006-6736
CVE-2006-6737
CVE-2006-6745
|
| Created: | January 18, 2007 |
Updated: | June 4, 2010 |
| Description: |
java has multiple vulnerabilities, these include:
an RSA exponent padding attack vulnerability, two vulnerabilities
which allow untrusted applets to access data in other applets,
vulnerabilities that involve applets gaining privileges due to
serialization bugs in the JRE and buffer overflows in the java image
handling routines that can give attackers read/write/execute capabilities
for local files. |
| Alerts: |
|
Comments (1 posted)
java-1.5.0-sun: multiple vulnerabilities
| Package(s): | java-1.5.0-sun |
CVE #(s): | CVE-2007-3503
CVE-2007-3655
CVE-2007-3698
CVE-2007-3922
|
| Created: | August 6, 2007 |
Updated: | June 24, 2008 |
| Description: |
The Javadoc tool was able to generate HTML documentation pages that
contained cross-site scripting (XSS) vulnerabilities. A remote attacker
could use this to inject arbitrary web script or HTML. (CVE-2007-3503)
The Java Web Start URL parsing component contained a buffer overflow
vulnerability within the parsing code for JNLP files. A remote attacker
could create a malicious JNLP file that could trigger this flaw and execute
arbitrary code when opened. (CVE-2007-3655)
The JSSE component did not correctly process SSL/TLS handshake requests. A
remote attacker who is able to connect to a JSSE-based service could
trigger this flaw leading to a denial-of-service. (CVE-2007-3698)
A flaw was found in the applet class loader. An untrusted applet could use
this flaw to circumvent network access restrictions, possibly connecting to
services hosted on the machine that executed the applet. (CVE-2007-3922)
|
| Alerts: |
|
Comments (none posted)
java-1.5.0-sun: multiple vulnerabilities
| Package(s): | java-1.5.0-sun |
CVE #(s): | CVE-2007-5232
CVE-2007-5238
CVE-2007-5239
CVE-2007-5240
CVE-2007-5273
CVE-2007-5274
|
| Created: | October 12, 2007 |
Updated: | April 25, 2008 |
| Description: |
Sun Java Runtime Environment (JRE) in JDK and JRE 6 Update 2 and earlier,
JDK and JRE 5.0 Update 12 and earlier, SDK and JRE 1.4.2_15 and earlier,
and SDK and JRE 1.3.1_20 and earlier, when applet caching is enabled,
allows remote attackers to violate the security model for an applet's
outbound connections via a DNS rebinding attack. (CVE-2007-5232)
Java Web Start in Sun JDK and JRE 6 Update 2 and earlier, JDK and JRE 5.0
Update 12 and earlier, and SDK and JRE 1.4.2_15 and earlier does not
properly enforce access restrictions for untrusted applications, which
allows user-assisted remote attackers to obtain sensitive information (the
Java Web Start cache location) via an untrusted application, aka "three
vulnerabilities." (CVE-2007-5238)
Java Web Start in Sun JDK and JRE 6 Update 2 and earlier, JDK and JRE 5.0
Update 12 and earlier, SDK and JRE 1.4.2_15 and earlier, and SDK and JRE
1.3.1_20 and earlier does not properly enforce access restrictions for
untrusted (1) applications and (2) applets, which allows user-assisted
remote attackers to copy or rename arbitrary files when local users perform
drag-and-drop operations from the untrusted application or applet window
onto certain types of desktop applications. (CVE-2007-5239)
Visual truncation vulnerability in the Java Runtime Environment in Sun JDK
and JRE 6 Update 2 and earlier, JDK and JRE 5.0 Update 12 and earlier, SDK
and JRE 1.4.2_15 and earlier, and SDK and JRE 1.3.1_20 and earlier allows
remote attackers to circumvent display of the untrusted-code warning banner
by creating a window larger than the workstation screen. (CVE-2007-5240)
Sun Java Runtime Environment (JRE) in JDK and JRE 6 Update 2 and earlier,
JDK and JRE 5.0 Update 12 and earlier, SDK and JRE 1.4.2_15 and earlier,
and SDK and JRE 1.3.1_20 and earlier, when an HTTP proxy server is used,
allows remote attackers to violate the security model for an applet's
outbound connections via a multi-pin DNS rebinding attack in which the
applet download relies on DNS resolution on the proxy server, but the
applet's socket operations rely on DNS resolution on the local machine, a
different issue than CVE-2007-5274. NOTE: this is similar to
CVE-2007-5232. (CVE-2007-5273)
Sun Java Runtime Environment (JRE) in JDK and JRE 6 Update 2 and earlier,
JDK and JRE 5.0 Update 12 and earlier, SDK and JRE 1.4.2_15 and earlier,
and SDK and JRE 1.3.1_20 and earlier, when Firefox or Opera is used, allows
remote attackers to violate the security model for JavaScript outbound
connections via a multi-pin DNS rebinding attack dependent on the
LiveConnect API, in which JavaScript download relies on DNS resolution by
the browser, but JavaScript socket operations rely on separate DNS
resolution by a Java Virtual Machine (JVM), a different issue than
CVE-2007-5273. NOTE: this is similar to CVE-2007-5232. (CVE-2007-5274) |
| Alerts: |
|
Comments (1 posted)
JRockit: multiple vulnerabilities
Comments (none posted)
kdebase: kdm passwordless login vulnerability
| Package(s): | kdebase kdm |
CVE #(s): | CVE-2007-4569
|
| Created: | September 21, 2007 |
Updated: | November 13, 2007 |
| Description: |
According to this KDE advisory KDM can be
tricked into performing a password-less login even for accounts with a
password set under certain circumstances, namely autologin to be configured
and "shutdown with password" enabled. KDE versions 3.3.0 up to including
3.5.7 are vulnerable. |
| Alerts: |
|
Comments (none posted)
kdelibs: kate backup file permission leak
| Package(s): | kdelibs kate kwrite |
CVE #(s): | CAN-2005-1920
|
| Created: | July 19, 2005 |
Updated: | September 21, 2010 |
| Description: |
Kate / Kwrite, as shipped with KDE 3.2.x up to including 3.4.0, creates a file backup before saving a modified file. These backup files are created with default permissions, even if the original file had more strict permissions set. See this advisory for more information. |
| Alerts: |
|
Comments (1 posted)
kernel: denial of service
| Package(s): | kernel |
CVE #(s): | CVE-2007-1357
|
| Created: | April 16, 2007 |
Updated: | November 14, 2007 |
| Description: |
The atalk_sum_skb function in AppleTalk for Linux kernel 2.6.x before
2.6.21, and possibly 2.4.x, allows remote attackers to cause a denial of
service (crash) via an AppleTalk frame that is shorter than the specified
length, which triggers a BUG_ON call when an attempt is made to perform a
checksum. |
| Alerts: |
|
Comments (none posted)
kernel: denial of service
| Package(s): | kernel |
CVE #(s): | CVE-2006-4623
|
| Created: | October 18, 2006 |
Updated: | November 14, 2007 |
| Description: |
The kernel DVB layer can be caused to crash with maliciously-formatted unidirectional lightweight encapsulation (ULE) data. |
| Alerts: |
|
Comments (none posted)
kernel: denial of service
| Package(s): | kernel |
CVE #(s): | CVE-2007-3642
|
| Created: | July 23, 2007 |
Updated: | November 14, 2007 |
| Description: |
The decode_choice function in net/netfilter/bf_conntrack_h323_asn1.c in the
Linux kernel before 2.6.22 allows remote attackers to cause a denial of
service (crash) via an encoded, out-of-range index value for a choice
field, which triggers a NULL pointer dereference. |
| Alerts: |
|
Comments (none posted)
kernel: out-of-bounds access
| Package(s): | kernel |
CVE #(s): | CVE-2007-4573
|
| Created: | September 25, 2007 |
Updated: | December 6, 2010 |
| Description: |
The IA32 system call emulation functionality in Linux kernel 2.4.x and
2.6.x before 2.6.22.7, when running on the x86_64 architecture, does not
zero extend the eax register after the 32bit entry path to ptrace is used,
which might allow local users to gain privileges by triggering an
out-of-bounds access to the system call table using the %RAX register. |
| Alerts: |
|
Comments (none posted)
kernel: multiple vulnerabilities
| Package(s): | kernel |
CVE #(s): | CVE-2007-0005
CVE-2007-1000
|
| Created: | March 15, 2007 |
Updated: | November 14, 2007 |
| Description: |
The Linux kernel has a boundary error problem with the
Omnikey CardMan 4040 driver read and write functions. This can be used
to cause a buffer overflow and possible execution or arbitrary code with
kernel privileges.
The ipv6_getsockopt_sticky function in
net/ipv6/ipv6_sockglue.c is vulnerable to a NULL pointer dereference.
Local users can use this to crash the kernel or to disclose kernel
memory. |
| Alerts: |
|
Comments (none posted)
kernel: denial of service
| Package(s): | kernel |
CVE #(s): | CVE-2006-0558
CVE-2007-1217
|
| Created: | September 4, 2007 |
Updated: | November 14, 2007 |
| Description: |
A flaw in the ISDN CAPI subsystem could allow a remote user to cause a
denial of service or potential remote access. Exploitation would require
the attacker to be able to send arbitrary frames over the ISDN network to
the victim's machine.
A flaw in the perfmon subsystem on ia64 platforms could allow a local user
to cause a denial of service. |
| Alerts: |
|
Comments (none posted)
kernel: denial of service
| Package(s): | kernel |
CVE #(s): | CVE-2006-0007
CVE-2007-0006
|
| Created: | February 15, 2007 |
Updated: | November 14, 2007 |
| Description: |
Linux kernel versions from 2.6.9 to 2.6.20 have a denial of service
vulnerability. A remote attacker can cause the key_alloc_serial
function's key serial number collision avoidance code to have a
null dereference, resulting in a crash. |
| Alerts: |
|
Comments (1 posted)
kernel: ALSA returns incorrect write size
| Package(s): | kernel |
CVE #(s): | CVE-2007-4571
|
| Created: | September 28, 2007 |
Updated: | June 20, 2008 |
| Description: |
The snd_mem_proc_read function in sound/core/memalloc.c in the Advanced
Linux Sound Architecture (ALSA) in the Linux kernel before 2.6.22.8 does
not return the correct write size, which allows local users to obtain
sensitive information (kernel memory contents) via a small count argument,
as demonstrated by multiple reads of /proc/driver/snd-page-alloc. |
| Alerts: |
|
Comments (none posted)
kernel: denial of service
| Package(s): | kernel |
CVE #(s): | CVE-2006-4535
CVE-2006-4538
|
| Created: | September 18, 2006 |
Updated: | January 5, 2009 |
| Description: |
Sridhar Samudrala discovered a local denial of service vulnerability
in the handling of SCTP sockets. By opening such a socket with a
special SO_LINGER value, a local attacker could exploit this to crash
the kernel. (CVE-2006-4535)
Kirill Korotaev discovered that the ELF loader on the ia64 and sparc
platforms did not sufficiently verify the memory layout. By attempting
to execute a specially crafted executable, a local user could exploit
this to crash the kernel. (CVE-2006-4538) |
| Alerts: |
|
Comments (none posted)
kernel: denial of service
| Package(s): | kernel |
CVE #(s): | CVE-2007-1861
CVE-2007-2242
|
| Created: | May 1, 2007 |
Updated: | February 8, 2008 |
| Description: |
The netlink protocol has an infinite recursion bug that allows users to
cause a kernel crash. Also the IPv6 protocol allows remote attackers to
cause a denial of service via crafted IPv6 type 0 route headers
(IPV6_RTHDR_TYPE_0) that create network amplification between two routers. |
| Alerts: |
|
Comments (none posted)
kernel: denial of service by memory consumption
| Package(s): | kernel |
CVE #(s): | CVE-2006-2936
|
| Created: | July 17, 2006 |
Updated: | November 14, 2007 |
| Description: |
The ftdi_sio driver (usb/serial/ftdi_sio.c) in Linux kernel 2.6.x up to
2.6.17, and possibly later versions, allows local users to cause a denial
of service (memory consumption) by writing more data to the serial port
than the driver can handle, which causes the data to be queued. |
| Alerts: |
|
Comments (none posted)
kernel: denial of service
| Package(s): | kernel |
CVE #(s): | CVE-2007-0772
|
| Created: | February 23, 2007 |
Updated: | November 14, 2007 |
| Description: |
The Linux kernel before 2.6.20.1 allows remote attackers to cause a denial
of service (oops) via a crafted NFSACL 2 ACCESS request that triggers a free
of an incorrect pointer. |
| Alerts: |
|
Comments (none posted)
kernel: several vulnerabilities
| Package(s): | kernel |
CVE #(s): | CVE-2007-1353
CVE-2007-2451
CVE-2007-2453
|
| Created: | June 11, 2007 |
Updated: | March 6, 2008 |
| Description: |
Ilja van Sprundel discovered that Bluetooth setsockopt calls could leak
kernel memory contents via an uninitialized stack buffer. A local attacker
could exploit this flaw to view sensitive kernel information.
(CVE-2007-1353)
The GEODE-AES driver did not correctly initialize its encryption key.
Any data encrypted using this type of device would be easily compromised.
(CVE-2007-2451)
The random number generator was hashing a subset of the available
entropy, leading to slightly less random numbers. Additionally, systems
without an entropy source would be seeded with the same inputs at boot
time, leading to a repeatable series of random numbers. (CVE-2007-2453) |
| Alerts: |
|
Comments (none posted)
kernel: signal handling flaw on PPC
| Package(s): | kernel |
CVE #(s): | CVE-2007-3107
|
| Created: | July 10, 2007 |
Updated: | February 4, 2008 |
| Description: |
A flaw in the signal handling on PowerPC-based systems that allowed a
local user to cause a denial of service (floating point corruption). |
| Alerts: |
|
Comments (none posted)
kernel: several vulnerabilities
| Package(s): | kernel |
CVE #(s): | CVE-2006-5823
CVE-2006-6054
CVE-2007-1592
|
| Created: | June 12, 2007 |
Updated: | March 21, 2011 |
| Description: |
A flaw in the cramfs file system allows invalid compressed data to cause
memory corruption (CVE-2006-5823)
A flaw in the ext2 file system allows an invalid inode size to cause a
denial of service (system hang) (CVE-2006-6054)
A flaw in IPV6 flow label handling allows a local user to cause a denial of
service (crash) (CVE-2007-1592) |
| Alerts: |
|
Comments (none posted)
kernel: denial of service
| Package(s): | kernel |
CVE #(s): | CVE-2006-5757
|
| Created: | November 13, 2006 |
Updated: | November 14, 2007 |
| Description: |
From the MOKB-05-11-2006
advisory: "The ISO9660 filesystem handling code of the Linux
2.6.x kernel fails to properly handle corrupted data structures, leading to
an exploitable denial of service condition. This particular vulnerability
seems to be caused by a race condition and a signedness issue. When
performing a read operation on a corrupted ISO9660 fs stream, the
isofs_get_blocks() function will enter an infinite loop when
__find_get_block_slow() callback from sb_getblk() fails ("due to various
races between file io on the block device and getblk")." |
| Alerts: |
|
Comments (none posted)
kernel: denial of service
| Package(s): | kernel |
CVE #(s): | CVE-2006-2935
CVE-2006-4145
CVE-2006-3745
|
| Created: | September 1, 2006 |
Updated: | July 30, 2008 |
| Description: |
Previous versions of the kernel package are subject to several
vulnerabilities. Certain malformed UDF filesystems can cause the system to
crash (denial of service). Malformed CDROM firmware or USB storage devices
(such as USB keys) could cause system crash (denial of service), and if
they were intentionally malformed, can cause arbitrary code to run with
elevated privileges. In addition, the SCTP protocol is subject to a remote
system crash (denial of service) attack. |
| Alerts: |
|
Comments (none posted)
kernel: multiple vulnerabilities
| Package(s): | kernel |
CVE #(s): | CVE-2006-5749
CVE-2006-4814
CVE-2006-6106
|
| Created: | January 5, 2007 |
Updated: | January 8, 2009 |
| Description: |
A security issue has been reported in Linux kernel due to an error in
drivers/isdn/i4l/isdn_ppp.c as the "isdn_ppp_ccp_reset_alloc_state()"
function never initializes an event timer before scheduling it with the
"add_timer()" function.
The mincore function in the kernel does not properly lock access to user
space, which has unspecified impact and attack vectors, possibly related to
a deadlock.
Another vulnerability has been reported in Linux kernel caused by a
boundary error within the handling of incoming CAPI messages in
net/bluetooth/cmtp/capi.c. This can be exploited to overwrite certain
Kernel data structures. |
| Alerts: |
|
Comments (none posted)
kernel: several vulnerabilities
| Package(s): | kernel |
CVE #(s): | CVE-2007-3851
CVE-2007-3848
CVE-2007-3105
|
| Created: | August 17, 2007 |
Updated: | January 8, 2009 |
| Description: |
The drm/i915 component in the Linux kernel before 2.6.22.2, when used with
i965G and later chipsets, allows local users with access to an X11 session
and Direct Rendering Manager (DRM) to write to arbitrary memory locations
and gain privileges via a crafted batchbuffer. (CVE-2007-3851)
Linux kernel 2.4.35 and other versions allows local users to send arbitrary
signals to a child process that is running at higher privileges by causing
a setuid-root parent process to die, which delivers an attacker-controlled
parent process death signal (PR_SET_PDEATHSIG). (CVE-2007-3848)
Stack-based buffer overflow in the random number generator (RNG)
implementation in the Linux kernel before 2.6.22 might allow local root
users to cause a denial of service or gain privileges by setting the
default wakeup threshold to a value greater than the output pool size,
which triggers writing random numbers to the stack by the pool transfer
function involving "bound check ordering". NOTE: this issue might only
cross privilege boundaries in environments that have granular assignment of
privileges for root. (CVE-2007-3105) |
| Alerts: |
|
Comments (1 posted)
krb5: multiple vulnerabilities
| Package(s): | krb5 |
CVE #(s): | CVE-2007-2442
CVE-2007-2443
CVE-2007-2798
|
| Created: | June 27, 2007 |
Updated: | March 24, 2008 |
| Description: |
David Coffey discovered an uninitialized pointer free flaw in the
RPC library used by kadmind. A remote unauthenticated attacker who
could access kadmind could trigger the flaw causing kadmind to crash
or possibly execute arbitrary code (CVE-2007-2442).
David Coffey also discovered an overflow flaw in the same RPC library.
A remote unauthenticated attacker who could access kadmind could
trigger the flaw causing kadmind to crash or possibly execute arbitrary
code (CVE-2007-2443).
Finally, a stack buffer overflow vulnerability was found in kadmind
that allowed an unauthenticated user able to access kadmind the
ability to trigger the vulnerability and possibly execute arbitrary
code (CVE-2007-2798). |
| Alerts: |
|
Comments (none posted)
krb5: uninitialized pointers
| Package(s): | krb5 |
CVE #(s): | CVE-2006-6143
CVE-2006-3084
|
| Created: | January 10, 2007 |
Updated: | July 7, 2010 |
| Description: |
The kdamind daemon can, in some situations, perform operations on uninitialized pointers. This bug could conceivably open up the system to a code execution attack by an unauthenticated remote attacker, but it appears to be difficult to exploit. See this advisory for details. |
| Alerts: |
|
Comments (1 posted)
krb5: local privilege escalation
| Package(s): | krb5 |
CVE #(s): | CVE-2006-3083
|
| Created: | August 9, 2006 |
Updated: | July 7, 2010 |
| Description: |
Some kerberos applications fail to check the results of setuid() calls, with the result that, if that call fails, they could continue to execute as root after thinking they had switched to a nonprivileged user. A local attacker who can cause these calls to fail (through resource exhaustion, presumably) could exploit this bug to gain root privileges. |
| Alerts: |
|
Comments (none posted)
krb5: buffer overflow, uninitialized pointer
| Package(s): | krb5 |
CVE #(s): | CVE-2007-3999
CVE-2007-4000
|
| Created: | September 4, 2007 |
Updated: | March 24, 2008 |
| Description: |
Tenable Network Security discovered a stack buffer overflow flaw in the RPC
library used by kadmind. A remote unauthenticated attacker who can access
kadmind could trigger this flaw and cause kadmind to crash.
Garrett Wollman discovered an uninitialized pointer flaw in kadmind. A
remote unauthenticated attacker who can access kadmind could trigger this
flaw and cause kadmind to crash. |
| Alerts: |
|
Comments (none posted)
krb5: multiple vulnerabilities
| Package(s): | krb5 |
CVE #(s): | CVE-2007-0956
CVE-2007-0957
CVE-2007-1216
|
| Created: | April 3, 2007 |
Updated: | March 24, 2008 |
| Description: |
A flaw was found in the username handling of the MIT krb5 telnet daemon
(telnetd). A remote attacker who can access the telnet port of a target
machine could log in as root without requiring a password. MIT krb5 Security Advisory 2007-001
Buffer overflows were found which affect the Kerberos KDC and the kadmin
server daemon. A remote attacker who can access the KDC could exploit this
bug to run arbitrary code with the privileges of the KDC or kadmin server
processes. MIT krb5 Security Advisory
2007-002
A double-free flaw was found in the GSSAPI library used by the kadmin
server daemon. MIT krb5 Security Advisory
2007-003 |
| Alerts: |
|
Comments (none posted)
kvirc: remote arbitrary code execution
| Package(s): | kvirc |
CVE #(s): | CVE-2007-2951
|
| Created: | September 14, 2007 |
Updated: | February 27, 2008 |
| Description: |
Stefan Cornelius from Secunia Research discovered that the
"parseIrcUrl()" function in file src/kvirc/kernel/kvi_ircurl.cpp does
not properly sanitize parts of the URI when building the command for
KVIrc's internal script system. |
| Alerts: |
|
Comments (none posted)
lftp: shell command execution
| Package(s): | lftp |
CVE #(s): | CVE-2007-2348
|
| Created: | May 4, 2007 |
Updated: | September 16, 2009 |
| Description: |
mirror --script in lftp before 3.5.9 does not properly quote shell
metacharacters, which might allow remote user-assisted attackers to execute
shell commands via a malicious script. NOTE: it is not clear whether this
issue crosses security boundaries, since the script already supports
commands such as "get" which could overwrite executable files. |
| Alerts: |
|
Comments (none posted)
libarchive: pax extension header vulnerabilities
| Package(s): | libarchive |
CVE #(s): | CVE-2007-3641
CVE-2007-3644
CVE-2007-3645
|
| Created: | August 9, 2007 |
Updated: | February 27, 2008 |
| Description: |
libarchive, a library for manipulating different streaming archive
formats, has a number of pax extension header vulnerabilities.
These may be used to cause a denial of service or for the execution
of arbitrary code. |
| Alerts: |
|
Comments (none posted)
libexif: integer overflow
| Package(s): | libexif |
CVE #(s): | CVE-2007-2645
|
| Created: | June 1, 2007 |
Updated: | February 11, 2008 |
| Description: |
Integer overflow in the exif_data_load_data_entry function in exif-data.c
in libexif before 0.6.14 allows user-assisted remote attackers to cause a
denial of service (crash) or possibly execute arbitrary code via crafted
EXIF data, involving the (1) doff or (2) s variable. |
| Alerts: |
|
Comments (none posted)
libmodplug: boundary errors
| Package(s): | libmodplug |
CVE #(s): | CVE-2006-4192
|
| Created: | December 11, 2006 |
Updated: | May 4, 2011 |
| Description: |
Luigi Auriemma has reported various boundary errors in load_it.cpp and
a boundary error in the "CSoundFile::ReadSample()" function in
sndfile.cpp. A remote attacker can entice a user to read crafted modules
or ITP files, which may trigger a buffer overflow resulting in the
execution of arbitrary code with the privileges of the user running the
application. |
| Alerts: |
|
Comments (none posted)
libphp-phpmailer: command execution
| Package(s): | libphp-phpmailer |
CVE #(s): | CVE-2007-3215
|
| Created: | June 20, 2007 |
Updated: | June 25, 2009 |
| Description: |
libphp-phpmailer does not do sufficient input validation, enabling shell command injection attacks. |
| Alerts: |
|
Comments (none posted)
libpng: several vulnerabilities
| Package(s): | libpng |
CVE #(s): | CVE-2007-5266
CVE-2007-5267
CVE-2007-5268
CVE-2007-5269
|
| Created: | October 19, 2007 |
Updated: | March 23, 2009 |
| Description: |
Certain chunk handlers in libpng before 1.0.29 and 1.2.x before 1.2.21
allow remote attackers to cause a denial of service (crash) via crafted (1)
pCAL (png_handle_pCAL), (2) sCAL (png_handle_sCAL), (3) tEXt
(png_push_read_tEXt), (4) iTXt (png_handle_iTXt), and (5) ztXT
(png_handle_ztXt) chunking in PNG images, which trigger out-of-bounds read
operations. (CVE-2007-5269)
pngrtran.c in libpng before 1.0.29 and 1.2.x before 1.2.21 use (1) logical
instead of bitwise operations and (2) incorrect comparisons, which might
allow remote attackers to cause a denial of service (crash) via a crafted
PNG image. (CVE-2007-5268)
Off-by-one error in ICC profile chunk handling in the png_set_iCCP function
in pngset.c in libpng before 1.2.22 beta1 allows remote attackers to cause
a denial of service (crash) via a crafted PNG image, due to an incorrect
fix for CVE-2007-5266. (CVE-2007-5267)
Off-by-one error in ICC profile chunk handling in the png_set_iCCP function
in pngset.c in libpng before 1.0.29 beta1 and 1.2.x before 1.2.21 beta1
allows remote attackers to cause a denial of service (crash) via a crafted
PNG image that prevents a name field from being NULL terminated.
(CVE-2007-5266) |
| Alerts: |
|
Comments (none posted)
libpng: denial of service
| Package(s): | libpng |
CVE #(s): | CVE-2007-2445
|
| Created: | May 17, 2007 |
Updated: | March 23, 2009 |
| Description: |
Libpng can be crashed when processing malformed PNG files.
It may also be possible to exploit this vulnerability to execute arbitrary
code. |
| Alerts: |
|
Comments (none posted)
libpng: buffer overflow
| Package(s): | libpng |
CVE #(s): | CVE-2006-3334
|
| Created: | July 19, 2006 |
Updated: | December 15, 2008 |
| Description: |
In pngrutil.c, the function png_decompress_chunk() allocates
insufficient space for an error message, potentially overwriting stack
data, leading to a buffer overflow. |
| Alerts: |
|
Comments (none posted)
libpng: heap based buffer overflow
| Package(s): | libpng |
CVE #(s): | CVE-2006-0481
|
| Created: | February 13, 2006 |
Updated: | December 15, 2008 |
| Description: |
A heap based buffer overflow bug was found in the way libpng strips alpha
channels from a PNG image. An attacker could create a carefully crafted PNG
image file in such a way that it could cause an application linked with
libpng to crash or execute arbitrary code when the file is opened by a
victim. |
| Alerts: |
|
Comments (1 posted)
libsndfile: heap-based buffer overflow
| Package(s): | libsndfile |
CVE #(s): | CVE-2007-4974
|
| Created: | September 25, 2007 |
Updated: | January 9, 2008 |
| Description: |
Heap-based buffer overflow in libsndfile 1.0.17 and earlier might allow
remote attackers to execute arbitrary code via a FLAC file with crafted PCM
data containing a block with a size that exceeds the previous block size. |
| Alerts: |
|
Comments (none posted)
libtiff: buffer overflow
| Package(s): | libtiff |
CVE #(s): | CVE-2006-2193
|
| Created: | June 15, 2006 |
Updated: | September 1, 2008 |
| Description: |
The t2p_write_pdf_string function in libtiff 3.8.2 and earlier is vulnerable
to a buffer overflow. Attackers can use a TIFF file with UTF-8 characters
in the DocumentName tag to overflow a buffer, causing a denial of service,
and possibly the execution of arbitrary code. |
| Alerts: |
|
Comments (none posted)
libvorbis: multiple memory corruption flaws
| Package(s): | libvorbis |
CVE #(s): | CVE-2007-3106
CVE-2007-4029
|
| Created: | July 27, 2007 |
Updated: | January 22, 2008 |
| Description: |
This iSEC Partners security advisory has
details on multiple memory corruption flaws in libvorbis. |
| Alerts: |
|
Comments (none posted)
libvorbis: multiple vulnerabilities
| Package(s): | libvorbis |
CVE #(s): | CVE-2007-4065
CVE-2007-4066
|
| Created: | October 11, 2007 |
Updated: | January 22, 2008 |
| Description: |
libvorbis has a number of vulnerabilities that can be triggered by
opening a specially crafted Ogg file. Vulnerabilities include
crashing and the execution of arbitrary code. |
| Alerts: |
|
Comments (1 posted)
libxml2 - arbitrary code execution
| Package(s): | libxml2 |
CVE #(s): | CAN-2004-0110
|
| Created: | February 26, 2004 |
Updated: | August 19, 2009 |
| Description: |
Yuuichi Teranishi discovered a flaw in libxml2 versions prior to 2.6.6.
When fetching a remote resource via FTP or HTTP, libxml2 uses special
parsing routines. These routines can overflow a buffer if passed a very
long URL. If an attacker is able to find an application using libxml2 that
parses remote resources and allows them to influence the URL, then this
flaw could be used to execute arbitrary code. |
| Alerts: |
|
Comments (none posted)
libxml2: multiple buffer overflows
| Package(s): | libxml2 |
CVE #(s): | CAN-2004-0989
|
| Created: | October 28, 2004 |
Updated: | August 19, 2009 |
| Description: |
libxml2 prior to version 2.6.14 has multiple buffer overflow
vulnerabilities, if a local user passes a specially crafted
FTP URL, arbitrary code may be executed. |
| Alerts: |
|
Comments (none posted)
lighttpd: denial of service
| Package(s): | lighttpd |
CVE #(s): | CVE-2007-3946
CVE-2007-3947
CVE-2007-3948
CVE-2007-3949
CVE-2007-3950
|
| Created: | July 19, 2007 |
Updated: | July 15, 2008 |
| Description: |
The lighttpd web server has multiple vulnerabilities involving
a remote access-control setting circumvention that is performed
by the sending of malformed requests. This can be used to crash
the server and cause a denial of service. |
| Alerts: |
|
Comments (none posted)
lookup-el: insecure temporary file
| Package(s): | lookup-el |
CVE #(s): | CVE-2007-0237
|
| Created: | March 19, 2007 |
Updated: | December 10, 2007 |
| Description: |
Tatsuya Kinoshita discovered that Lookup, a search interface to electronic
dictionaries on emacsen, creates a temporary file in an insecure fashion
when the ndeb-binary feature is used, which allows a local attacker to
craft a symlink attack to overwrite arbitrary files. |
| Alerts: |
|
Comments (none posted)
lynx: arbitrary command execution
| Package(s): | lynx |
CVE #(s): | CVE-2005-2929
|
| Created: | November 14, 2005 |
Updated: | September 14, 2009 |
| Description: |
An arbitrary command execute bug was found in the lynx "lynxcgi:" URI
handler. An attacker could create a web page redirecting to a malicious URL
which could execute arbitrary code as the user running lynx. |
| Alerts: |
|
Comments (none posted)
mapserver: multiple cross-site scripting vulnerabilities
| Package(s): | mapserver |
CVE #(s): | CVE-2007-4542
CVE-2007-4629
|
| Created: | September 5, 2007 |
Updated: | April 7, 2008 |
| Description: |
CVE-2007-4542: Multiple cross-site scripting (XSS) vulnerabilities in MapServer before 4.10.3 allow remote attackers to inject arbitrary web script or HTML via unspecified vectors involving the (1) processLine function in maptemplate.c and the (2) writeError function in mapserv.c in the mapserv CGI program.
CVE-2007-4629: Buffer overflow in the processLine function in maptemplate.c in MapServer before 4.10.3 allows attackers to cause a denial of service and possibly execute arbitrary code via a mapfile with a long layer name, group name, or metadata entry name. |
| Alerts: |
|
Comments (none posted)
mldonkey: privilege escalation
| Package(s): | mldonkey |
CVE #(s): | |
| Created: | October 25, 2007 |
Updated: | October 31, 2007 |
| Description: |
The MLDonkey peer-to-peer filesharing client can be used to add
a user to the system with a valid login shell and no password.
This can be used for the escalation of privilege. |
| Alerts: |
|
Comments (none posted)
mod_jk: proxy bypass
| Package(s): | mod_jk |
CVE #(s): | CVE-2007-1860
|
| Created: | May 30, 2007 |
Updated: | March 7, 2008 |
| Description: |
From the Red Hat advisory: "Versions of mod_jk before 1.2.23 decoded request URLs by default inside
Apache httpd and forwarded the encoded URL to Tomcat, which itself did a
second decoding. If Tomcat was used behind mod_jk and configured to only
proxy some contexts, an attacker could construct a carefully crafted HTTP
request to work around the context restriction and potentially access
non-proxied content." |
| Alerts: |
|
Comments (none posted)
moin: arbitrary JavaScript execution
| Package(s): | moin |
CVE #(s): | CVE-2007-2423
|
| Created: | May 8, 2007 |
Updated: | March 10, 2008 |
| Description: |
A flaw was discovered in MoinMoin's error reporting when using the
AttachFile action. By tricking a user into viewing a crafted MoinMoin
URL, an attacker could execute arbitrary JavaScript as the current
MoinMoin user, possibly exposing the user's authentication information
for the domain where MoinMoin was hosted. |
| Alerts: |
|
Comments (none posted)
moodle: cross-site scripting
| Package(s): | moodle |
CVE #(s): | CVE-2007-3555
|
| Created: | August 7, 2007 |
Updated: | December 22, 2008 |
| Description: |
A cross-site scripting (XSS) vulnerability in index.php in Moodle 1.7.1
allows remote attackers to inject arbitrary web script or HTML via a style
expression in the search parameter. |
| Alerts: |
|
Comments (none posted)
mplayer: buffer overflow
| Package(s): | mplayer |
CVE #(s): | CVE-2007-1246
|
| Created: | March 8, 2007 |
Updated: | April 1, 2008 |
| Description: |
MPlayer versions up to 1.0rc1 have a buffer overflow in the
loader/dmo/DMO_VideoDecoder.c DMO_VideoDecoder_Open function.
user-assisted remote attackers can use this to create a buffer overflow
and possibly execute arbitrary code. |
| Alerts: |
|
Comments (none posted)
mydns: buffer overflows
| Package(s): | mydns |
CVE #(s): | CVE-2007-2362
|
| Created: | May 23, 2007 |
Updated: | December 17, 2007 |
| Description: |
Multiple buffer overflows in MyDNS allow remote attackers to cause a denial of
service (daemon crash) and possibly execution of arbitrary code. |
| Alerts: |
|
Comments (none posted)
mysql: denial of service
| Package(s): | mysql |
CVE #(s): | CVE-2007-1420
|
| Created: | March 22, 2007 |
Updated: | May 21, 2008 |
| Description: |
MySQL subselect queries using "ORDER BY" can be used by an attacker with
access to a MySQL instance in order to create an intermittent denial
of service. |
| Alerts: |
|
Comments (none posted)
mysql: format string bug
| Package(s): | mysql |
CVE #(s): | CVE-2006-3469
|
| Created: | July 21, 2006 |
Updated: | July 30, 2008 |
| Description: |
Jean-David Maillefer discovered a format string bug in the
date_format() function's error reporting. By calling the function with
invalid arguments, an authenticated user could exploit this to crash
the server. |
| Alerts: |
|
Comments (none posted)
MySQL: privilege violations
| Package(s): | mysql |
CVE #(s): | CVE-2006-4031
CVE-2006-4226
|
| Created: | August 25, 2006 |
Updated: | July 30, 2008 |
| Description: |
MySQL 4.1 before 4.1.21 and 5.0 before 5.0.24 allows a local user to access
a table through a previously created MERGE table, even after the user's
privileges are revoked for the original table, which might violate intended
security policy (CVE-2006-4031).
MySQL 4.1 before 4.1.21, 5.0 before 5.0.25, and 5.1 before 5.1.12, when run
on case-sensitive filesystems, allows remote authenticated users to create
or access a database when the database name differs only in case from a
database for which they have permissions (CVE-2006-4226). |
| Alerts: |
|
Comments (none posted)
mysql: multiple vulnerabilities
Comments (none posted)
MySQL: logging bypass
| Package(s): | mysql |
CVE #(s): | CVE-2006-0903
|
| Created: | April 4, 2006 |
Updated: | May 21, 2008 |
| Description: |
MySQL 5.0.18 and earlier allows local users to bypass logging mechanisms
via SQL queries that contain the NULL character, which are not properly
handled by the mysql_real_query function. NOTE: this issue was originally
reported for the mysql_query function, but the vendor states that since
mysql_query expects a null character, this is not an issue for mysql_query. |
| Alerts: |
|
Comments (2 posted)
nagios-plugins: buffer overflow
| Package(s): | nagios-plugins |
CVE #(s): | CVE-2007-5198
|
| Created: | October 23, 2007 |
Updated: | April 17, 2008 |
| Description: |
Buffer overflow in the redir function in check_http.c in Nagios Plugins
before 1.4.10 allows remote web servers to execute arbitrary code via long
Location header responses (redirects). |
| Alerts: |
|
Comments (none posted)
nbd: arbitrary code execution
| Package(s): | nbd |
CVE #(s): | CVE-2005-3534
|
| Created: | January 6, 2006 |
Updated: | March 7, 2011 |
| Description: |
Kurt Fitzner discovered that the NBD (network block device) server did not
correctly verify the maximum size of request packets. By sending specially
crafted large request packets, a remote attacker who is allowed to access
the server could exploit this to execute arbitrary code with root
privileges. |
| Alerts: |
|
Comments (none posted)
nginx: cross site scripting
| Package(s): | nginx |
CVE #(s): | |
| Created: | July 20, 2007 |
Updated: | September 14, 2009 |
| Description: |
Nginx [engine x] is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3
proxy server written by Igor Sysoev. The "msie_refresh" directive could
allow cross site scripting. |
| Alerts: |
|
Comments (none posted)
opal: denial of service
| Package(s): | opal |
CVE #(s): | CVE-2007-4924
|
| Created: | October 8, 2007 |
Updated: | January 9, 2008 |
| Description: |
From the Red Hat advisory: A flaw was discovered in the way opal handled certain Session Initiation
Protocol (SIP) packets. An attacker could use this flaw to crash an
application, such as Ekiga, which is linked with opal. (CVE-2007-4924) |
| Alerts: |
|
Comments (none posted)
OpenOffice.org: arbitrary code execution
| Package(s): | openoffice.org |
CVE #(s): | CVE-2007-0245
|
| Created: | June 13, 2007 |
Updated: | June 12, 2008 |
| Description: |
A specially crafted RTF file could cause the
filter to overwrite data on the heap, which may lead to the execution
of arbitrary code. |
| Alerts: |
|
Comments (none posted)
openoffice.org: arbitrary code execution via TIFF images
| Package(s): | openoffice.org |
CVE #(s): | CVE-2007-2834
|
| Created: | September 17, 2007 |
Updated: | June 12, 2008 |
| Description: |
A heap overflow vulnerability has been discovered in the TIFF parsing
code of the OpenOffice.org suite. The parser uses untrusted values
from the TIFF file to calculate the number of bytes of memory to
allocate. A specially crafted TIFF image could trigger an integer
overflow and subsequently a buffer overflow that could cause the
execution of arbitrary code. |
| Alerts: |
|
Comments (none posted)
OpenSSH: denial of service
| Package(s): | openssh |
CVE #(s): | CVE-2006-4925
CVE-2006-5052
|
| Created: | October 6, 2006 |
Updated: | November 15, 2007 |
| Description: |
packet.c in ssh in OpenSSH allows remote attackers to cause a denial of
service (crash) by sending an invalid protocol sequence with
USERAUTH_SUCCESS before NEWKEYS, which causes newkeys[mode] to be NULL.
An unspecified vulnerability in portable OpenSSH before 4.4, when running
on some platforms, allows remote attackers to determine the validity of
usernames via unknown vectors involving a GSSAPI "authentication abort." |
| Alerts: |
|
Comments (none posted)
openssh: remote denial of service
| Package(s): | openssh |
CVE #(s): | CVE-2006-4924
CVE-2006-5051
|
| Created: | September 27, 2006 |
Updated: | September 17, 2008 |
| Description: |
Openssh 4.4 fixes some
security issues, including a pre-authentication denial of service, an
unsafe signal hander and on portable OpenSSH a GSSAPI authentication abort
could be used to determine the validity of usernames on some platforms. |
| Alerts: |
|
Comments (none posted)
openssl: off-by-one error
| Package(s): | openssl |
CVE #(s): | CVE-2007-4995
|
| Created: | October 23, 2007 |
Updated: | May 13, 2008 |
| Description: |
Off-by-one error in the DTLS implementation in OpenSSL 0.9.8 before 0.9.8f
and 0.9.7 allows remote attackers to execute arbitrary code via unspecified
vectors. |
| Alerts: |
|
Comments (none posted)
openssl: off-by-one error
| Package(s): | openssl |
CVE #(s): | CVE-2007-5135
|
| Created: | October 3, 2007 |
Updated: | July 31, 2008 |
| Description: |
From the Debian advisory: An off-by-one error has been identified in the SSL_get_shared_ciphers()
routine in the libssl library from OpenSSL, an implementation of Secure
Socket Layer cryptographic libraries and utilities. This error could
allow an attacker to crash an application making use of OpenSSL's libssl
library, or potentially execute arbitrary code in the security context
of the user running such an application. |
| Alerts: |
|
Comments (none posted)
openssl: private key attack
| Package(s): | openssl |
CVE #(s): | CVE-2007-3108
|
| Created: | August 7, 2007 |
Updated: | May 13, 2008 |
| Description: |
OpenSSL could allow a local user in certain circumstances to divulge
information about private keys being used. |
| Alerts: |
|
Comments (none posted)
opera: multiple vulnerabilities
| Package(s): | opera |
CVE #(s): | CVE-2007-4367
CVE-2007-3929
CVE-2007-3142
CVE-2007-3819
|
| Created: | August 23, 2007 |
Updated: | February 27, 2008 |
| Description: |
The Opera browser has multiple vulnerabilities.
The JavaScript engine is vulnerable to a virtual function call on an invalid pointer that can be triggered by specially crafted JavaScript.
A freed pointer in the BitTorrent support may be
accessed, this can be used for malicious code execution.
The browser is vulnerable to several memory read protection
errors. There are URI display errors that can be used to trick
users into visiting arbitrary web sites. |
| Alerts: |
|
Comments (none posted)
pam: privilege escalation
| Package(s): | pam |
CVE #(s): | CVE-2007-1716
|
| Created: | June 12, 2007 |
Updated: | November 15, 2007 |
| Description: |
A flaw was found in the way pam_console set console device permissions. It
was possible for various console devices to retain ownership of the console
user after logging out, possibly leaking information to an unauthorized
user. |
| Alerts: |
|
Comments (none posted)
perl-Net-DNS: predictable id sequence
| Package(s): | perl-Net-DNS |
CVE #(s): | CVE-2007-3377
|
| Created: | June 26, 2007 |
Updated: | March 12, 2008 |
| Description: |
Net::DNS before 0.60 uses an id sequence that is predictable and the same
in all child processes. |
| Alerts: |
|
Comments (none posted)
php: multiple vulnerabilities
| Package(s): | php |
CVE #(s): | CVE-2007-1001
CVE-2007-1285
CVE-2007-1718
CVE-2007-1583
|
| Created: | April 16, 2007 |
Updated: | December 4, 2007 |
| Description: |
A denial of service flaw was found in the way PHP processed a deeply nested
array. A remote attacker could cause the PHP interpreter to crash by
submitting an input variable with a deeply nested array. (CVE-2007-1285)
A flaw was found in the way the mbstring extension set global variables. A
script which used the mb_parse_str() function to set global variables could
be forced to enable the register_globals configuration option, possibly
resulting in global variable injection. (CVE-2007-1583)
A flaw was discovered in the way PHP's mail() function processed header
data. If a script sent mail using a Subject header containing a string from
an untrusted source, a remote attacker could send bulk e-mail to unintended
recipients. (CVE-2007-1718)
A heap based buffer overflow flaw was discovered in PHP's gd extension. A
script that could be forced to process WBMP images from an untrusted source
could result in arbitrary code execution. (CVE-2007-1001) |
| Alerts: |
|
Comments (none posted)
php: several vulnerabilities
| Package(s): | php |
CVE #(s): | CVE-2006-4481
CVE-2006-4484
CVE-2006-4485
|
| Created: | September 8, 2006 |
Updated: | June 13, 2008 |
| Description: |
The file_exists and imap_reopen functions in PHP before 5.1.5 do not check
for the safe_mode and open_basedir settings, which allows local users to
bypass the settings (CVE-2006-4481).
A buffer overflow in the LWZReadByte function in ext/gd/libgd/gd_gif_in.c
in the GD extension in PHP before 5.1.5 allows remote attackers to have an
unknown impact via a GIF file with input_code_size greater than
MAX_LWZ_BITS, which triggers an overflow when initializing the table array
(CVE-2006-4484).
The stripos function in PHP before 5.1.5 has unknown impact and attack
vectors related to an out-of-bounds read (CVE-2006-4485). |
| Alerts: |
|
Comments (1 posted)
php: multiple vulnerabilities
| Package(s): | php |
CVE #(s): | CVE-2007-2872
CVE-2007-2756
|
| Created: | June 1, 2007 |
Updated: | January 29, 2008 |
| Description: |
According to a vendor release announcement multiple
security enhancements and fixes were fixed in version 5.2.3 of the
programming language PHP. |
| Alerts: |
|
Comments (none posted)
php: multiple vulnerabilities
| Package(s): | php |
CVE #(s): | CVE-2007-3799
CVE-2007-3998
CVE-2007-4659
CVE-2007-4658
CVE-2007-4670
CVE-2007-4661
|
| Created: | October 23, 2007 |
Updated: | May 19, 2008 |
| Description: |
From the Red Hat advisory:
Various integer overflow flaws were found in the PHP gd extension. A
script that could be forced to resize images from an untrusted source could
possibly allow a remote attacker to execute arbitrary code as the apache
user. (CVE-2007-3996)
A previous security update introduced a bug into PHP session cookie
handling. This could allow an attacker to stop a victim from viewing a
vulnerable web site if the victim has first visited a malicious web page
under the control of the attacker, and that page can set a cookie for the
vulnerable web site. (CVE-2007-4670)
A flaw was found in the PHP money_format function. If a remote attacker
was able to pass arbitrary data to the money_format function this could
possibly result in an information leak or denial of service. Note that is
is unusual for a PHP script to pass user-supplied data to the money_format
function. (CVE-2007-4658)
A flaw was found in the PHP wordwrap function. If a remote attacker was
able to pass arbitrary data to the wordwrap function this could possibly
result in a denial of service. (CVE-2007-3998)
A bug was found in PHP session cookie handling. This could allow an
attacker to create a cross-site cookie insertion attack if a victim follows
an untrusted carefully-crafted URL. (CVE-2007-3799)
A flaw was found in handling of dynamic changes to global variables. A
script which used certain functions which change global variables could
be forced to enable the register_globals configuration option, possibly
resulting in global variable injection. (CVE-2007-4659)
An integer overflow flaw was found in the PHP chunk_split function. If a
remote attacker was able to pass arbitrary data to the third argument of
chunk_split they could possibly execute arbitrary code as the apache user.
Note that it is unusual for a PHP script to use the chunk_split function
with a user-supplied third argument. (CVE-2007-4661) |
| Alerts: |
|
Comments (none posted)
php: buffer overflows
| Package(s): | php |
CVE #(s): | CVE-2006-5465
|
| Created: | November 3, 2006 |
Updated: | January 18, 2010 |
| Description: |
The Hardened-PHP Project discovered buffer overflows in
htmlentities/htmlspecialchars internal routines to the PHP Project. Of
course the whole purpose of these functions is to be filled with user
input. (The overflow can only be when UTF-8 is used) |
| Alerts: |
|
Comments (none posted)
phpbb2: missing input sanitizing
| Package(s): | phpbb2 |
CVE #(s): | CVE-2006-1896
|
| Created: | May 22, 2006 |
Updated: | February 11, 2008 |
| Description: |
It was discovered that phpbb2, a web based bulletin board, insufficiently
sanitizes values passed to the "Font Color 3" setting, which might lead to
the execution of injected code by admin users. |
| Alerts: |
|
Comments (none posted)
phpbb2: multiple vulnerabilities
| Package(s): | phpbb2 |
CVE #(s): | CVE-2005-3310
CVE-2005-3415
CVE-2005-3416
CVE-2005-3417
CVE-2005-3418
CVE-2005-3419
CVE-2005-3420
CVE-2005-3536
CVE-2005-3537
|
| Created: | December 22, 2005 |
Updated: | February 11, 2008 |
| Description: |
The phpbb2 web forum has a number of vulnerabilities including:
a web script injection problem, a protection mechanism bypass, a
security check bypass, a remote global variable bypass, cross site
scripting vulnerabilities, an SQL injection vulnerability,
a remote regular expression modification problem, missing input
sanitizing, and a missing request validation problem. |
| Alerts: |
|
Comments (none posted)
phpmyadmin: multiple vulnerabilities
| Package(s): | phpmyadmin |
CVE #(s): | CVE-2006-6942
CVE-2006-6944
CVE-2007-1325
CVE-2007-1395
CVE-2007-2245
|
| Created: | September 10, 2007 |
Updated: | March 19, 2009 |
| Description: |
Several remote vulnerabilities have been discovered in phpMyAdmin, a
program to administrate MySQL over the web. The Common Vulnerabilities
and Exposures project identifies the following problems:
CVE-2007-1325:
The PMA_ArrayWalkRecursive function in libraries/common.lib.php
does not limit recursion on arrays provided by users, which allows
context-dependent attackers to cause a denial of service (web
server crash) via an array with many dimensions.
CVE-2007-1395:
Incomplete blacklist vulnerability in index.php allows remote
attackers to conduct cross-site scripting (XSS) attacks by
injecting arbitrary JavaScript or HTML in a (1) db or (2) table
parameter value followed by an uppercase </SCRIPT> end tag,
which bypasses the protection against lowercase </script>.
CVE-2007-2245:
Multiple cross-site scripting (XSS) vulnerabilities allow remote
attackers to inject arbitrary web script or HTML via (1) the
fieldkey parameter to browse_foreigners.php or (2) certain input
to the PMA_sanitize function.
CVE-2006-6942:
Multiple cross-site scripting (XSS) vulnerabilities allow remote
attackers to inject arbitrary HTML or web script via (1) a comment
for a table name, as exploited through (a) db_operations.php,
(2) the db parameter to (b) db_create.php, (3) the newname parameter
to db_operations.php, the (4) query_history_latest,
(5) query_history_latest_db, and (6) querydisplay_tab parameters to
(c) querywindow.php, and (7) the pos parameter to (d) sql.php.
CVE-2006-6944:
phpMyAdmin allows remote attackers to bypass Allow/Deny access rules
that use IP addresses via false headers.
|
| Alerts: |
|
Comments (none posted)
phpPgAdmin: cross-site scripting
| Package(s): | phppgadmin |
CVE #(s): | CVE-2007-2865
CVE-2007-5728
|
| Created: | June 18, 2007 |
Updated: | January 21, 2009 |
| Description: |
A cross-site scripting (XSS) vulnerability in sqledit.php in phpPgAdmin
4.1.1 allows remote attackers to inject arbitrary web script or HTML via
the server parameter. |
| Alerts: |
|
Comments (none posted)
pidgin: denial of service
| Package(s): | pidgin |
CVE #(s): | CVE-2007-4996
|
| Created: | October 3, 2007 |
Updated: | November 2, 2007 |
| Description: |
Pidgin can be forced to crash by an MSN user sending "nudge" messages. |
| Alerts: |
|
Comments (1 posted)
postgresql: several vulnerabilities
| Package(s): | postgresql |
CVE #(s): | CVE-2007-3278
CVE-2007-3279
CVE-2007-3280
|
| Created: | September 25, 2007 |
Updated: | February 1, 2008 |
| Description: |
PostgreSQL 8.1 and probably later and earlier versions, when local trust
authentication is enabled and the Database Link library (dblink) is
installed, allows remote attackers to access arbitrary accounts and execute
arbitrary SQL queries via a dblink host parameter that proxies the
connection from 127.0.0.1. (CVE-2007-3278)
PostgreSQL 8.1 and probably later and earlier versions, when the PL/pgSQL
(plpgsql) language has been created, grants certain plpgsql privileges to
the PUBLIC domain, which allows remote attackers to create and execute
functions, as demonstrated by functions that perform local brute-force
password guessing attacks, which may evade intrusion
detection. (CVE-2007-3279)
The Database Link library (dblink) in PostgreSQL 8.1 implements functions
via CREATE statements that map to arbitrary libraries based on the C
programming language, which allows remote authenticated superusers to map
and execute a function from any library, as demonstrated by using the
system function in libc.so.6 to gain shell access. (CVE-2007-3280) |
| Alerts: |
|
Comments (1 posted)
proftpd: authentication bypass
| Package(s): | proftpd |
CVE #(s): | CVE-2007-2165
|
| Created: | June 21, 2007 |
Updated: | November 5, 2007 |
| Description: |
The ProFTPD Auth API has an authentication bypass vulnerability.
When multiple simultaneous authentication modules are configured,
the ProFTPD module that checks authentication is not necessarily
the same module that retrieves authentication data. This can be
used by remote attackers to bypass the authentication system.
|
| Alerts: |
|
Comments (none posted)
pulseaudio: denial of service
| Package(s): | pulseaudio |
CVE #(s): | CVE-2007-1804
|
| Created: | May 30, 2007 |
Updated: | March 10, 2008 |
| Description: |
The pulseaudio network code suffers from a denial of service vulnerability exploitable by an unauthenticated attacker. |
| Alerts: |
|
Comments (none posted)
pwlib: denial of service
| Package(s): | pwlib |
CVE #(s): | CVE-2007-4897
|
| Created: | October 8, 2007 |
Updated: | January 9, 2008 |
| Description: |
From the Red Hat advisory: A memory management flaw was discovered in PWLib. An attacker could use this
flaw to crash an application, such as Ekiga, which is linked with pwlib
(CVE-2007-4897).
|
| Alerts: |
|
Comments (none posted)
python: information disclosure
| Package(s): | python |
CVE #(s): | CVE-2007-2052
|
| Created: | May 9, 2007 |
Updated: | July 30, 2009 |
| Description: |
Python 2.4 and 2.5 contain a bug in PyLocale_strxfrm() which could enable an attacker to read portions of unrelated memory. |
| Alerts: |
|
Comments (none posted)
python: integer overflows
| Package(s): | python |
CVE #(s): | CVE-2007-4965
|
| Created: | October 30, 2007 |
Updated: | July 30, 2009 |
| Description: |
Multiple integer overflows in the imageop module in Python 2.5.1 and
earlier allow context-dependent attackers to cause a denial of service
(application crash) and possibly obtain sensitive information (memory
contents) via crafted arguments to (1) the tovideo method, and unspecified
other vectors related to (2) imageop.c, (3) rbgimgmodule.c, and other
files, which trigger heap-based buffer overflows. |
| Alerts: |
|
Comments (none posted)
qemu: multiple vulnerabilities
Comments (none posted)
qt: arbitrary code execution
| Package(s): | qt |
CVE #(s): | CVE-2007-3388
|
| Created: | August 1, 2007 |
Updated: | December 10, 2007 |
| Description: |
Format string bugs were found in several Qt warning messages.
Applications using Qt for processing certain data types could
trigger them if the data caused Qt to print warnings. The bugs
potentially allow to execute arbitrary code via specially crafted
files (CVE-2007-3388). |
| Alerts: |
|
Comments (none posted)
qt: buffer overflow
| Package(s): | qt |
CVE #(s): | CVE-2007-4137
|
| Created: | September 14, 2007 |
Updated: | December 10, 2007 |
| Description: |
A buffer overflow was found in how Qt expanded malformed Unicode strings.
If an application linked against Qt parsed a malicious Unicode string, it
could lead to a denial of service or potentially allow for the execution of
arbitrary code. |
| Alerts: |
|
Comments (none posted)
quagga: denial of service
| Package(s): | quagga |
CVE #(s): | CVE-2007-4826
|
| Created: | September 14, 2007 |
Updated: | October 25, 2010 |
| Description: |
The bgpd daemon in Quagga prior to 0.99.9 allowed remote BGP peers to cause
a denial of service crash via a malformed OPEN message or COMMUNITY
attribute. |
| Alerts: |
|
Comments (none posted)
quake: buffer overflow
| Package(s): | quake3-bin |
CVE #(s): | CVE-2006-2236
|
| Created: | May 10, 2006 |
Updated: | January 12, 2009 |
| Description: |
Games based on the Quake 3 engine are vulnerable to a buffer overflow exploitable by a hostile game server. |
| Alerts: |
|
Comments (none posted)
redhat-cluster-suite: denial of service
| Package(s): | redhat-cluster-suite |
CVE #(s): | CVE-2007-3380
|
| Created: | July 19, 2007 |
Updated: | November 14, 2007 |
| Description: |
The redhat cluster suite's
cluster manager is vulnerable to a remote attack. Attackers
can connect to the DLM port and block subsequent DLM operations,
resulting in a denial of service. |
| Alerts: |
|
Comments (1 posted)
rsync: off-by-one errors
| Package(s): | rsync |
CVE #(s): | CVE-2007-4091
|
| Created: | August 20, 2007 |
Updated: | December 3, 2007 |
| Description: |
Multiple off-by-one errors in the sender.c in rsync 2.6.9 might allow
remote attackers to execute arbitrary code via directory names that are not
properly handled when calling the f_name function. |
| Alerts: |
|
Comments (1 posted)
ruby: insufficient SSL certificate validation
| Package(s): | ruby |
CVE #(s): | CVE-2007-5162
CVE-2007-5770
|
| Created: | October 8, 2007 |
Updated: | October 10, 2008 |
| Description: |
The connect method in lib/net/http.rb in the (1) Net::HTTP and (2) Net::HTTPS libraries in Ruby 1.8.5 and 1.8.6 does not verify that the commonName (CN) field in a server certificate matches the domain name in an HTTPS request, which makes it easier for remote attackers to intercept SSL transmissions via a man-in-the-middle attack or spoofed web site. |
| Alerts: |
|
Comments (none posted)
samba: incorrect group assignment
| Package(s): | samba |
CVE #(s): | CVE-2007-4138
|
| Created: | September 12, 2007 |
Updated: | November 15, 2007 |
| Description: |
From the Samba advisory: When the rfc2307 or sfu nss_info plugin has been enabled, in
the absence of either the RFC2307 or SFU primary group attribute,
Winbind will assign a primary group ID of 0 to the domain user
queried using the getpwnam() C library call. |
| Alerts: |
|
Comments (1 posted)
streamripper: buffer overflow
| Package(s): | streamripper |
CVE #(s): | CVE-2007-4337
|
| Created: | September 14, 2007 |
Updated: | December 9, 2008 |
| Description: |
Chris Rohlf discovered several boundary errors in the
httplib_parse_sc_header() function when processing HTTP headers. |
| Alerts: |
|
Comments (none posted)
subversion: possible information leak
| Package(s): | subversion |
CVE #(s): | CVE-2007-2448
|
| Created: | October 30, 2007 |
Updated: | February 1, 2011 |
| Description: |
Subversion 1.4.3 and earlier does not properly implement the "partial
access" privilege for users who have access to changed paths but not copied
paths, which allows remote authenticated users to obtain sensitive
information (revision properties) via svn (1) propget, (2) proplist, or (3)
propedit. |
| Alerts: |
|
Comments (none posted)
Sun JDK/JRE: multiple vulnerabilities
| Package(s): | Sun JDK/JRE |
CVE #(s): | CVE-2007-2435
CVE-2007-2788
CVE-2007-2789
|
| Created: | June 1, 2007 |
Updated: | April 18, 2008 |
| Description: |
An unspecified vulnerability involving an "incorrect use of system
classes" was reported by the Fujitsu security team. Additionally, Chris
Evans from the Google Security Team reported an integer overflow
resulting in a buffer overflow in the ICC parser used with JPG or BMP
files, and an incorrect open() call to /dev/tty when processing certain
BMP files. |
| Alerts: |
|
Comments (none posted)
sysstat: insecure temporary files
| Package(s): | sysstat |
CVE #(s): | CVE-2007-3852
|
| Created: | August 20, 2007 |
Updated: | September 23, 2011 |
| Description: |
The init script (sysstat.in) in sysstat 5.1.2 up to 7.1.6 creates
/tmp/sysstat.run insecurely, which allows local users to execute arbitrary
code. |
| Alerts: |
|
Comments (1 posted)
t1lib: buffer overflow
| Package(s): | t1lib |
CVE #(s): | CVE-2007-4033
|
| Created: | September 20, 2007 |
Updated: | February 12, 2008 |
| Description: |
T1lib, an enhanced rasterizer for X11 Type 1 fonts, does
not properly perform bounds checking. An attacker can send
specially crafted input to applications linked against the library in
order to create a buffer overflow, resulting in a denial of service
or the execution of arbitrary code. |
| Alerts: |
|
Comments (none posted)
tar: buffer overflow
| Package(s): | tar |
CVE #(s): | CVE-2007-4476
|
| Created: | October 16, 2007 |
Updated: | March 17, 2010 |
| Description: |
Buffer overflow in the safer_name_suffix function in GNU tar has unspecified attack vectors and impact, resulting in a "crashing stack." |
| Alerts: |
|
Comments (none posted)
tar: symlink path traversal vulnerability
| Package(s): | tar |
CVE #(s): | CVE-2007-4131
|
| Created: | August 23, 2007 |
Updated: | December 28, 2007 |
| Description: |
The tar utility has a symlink path traversal vulnerability involving
extracted archives. Maliciously created tar archives can be used to
write arbitrary data to files that the tar user has write access to. |
| Alerts: |
|
Comments (none posted)
tcpdump: integer overflow
| Package(s): | tcpdump |
CVE #(s): | CVE-2007-3798
|
| Created: | July 20, 2007 |
Updated: | November 15, 2007 |
| Description: |
An integer overflow in print-bgp.c in the BGP dissector in tcpdump 3.9.6
and earlier allows remote attackers to execute arbitrary code via crafted
TLVs in a BGP packet, related to an unchecked return value. |
| Alerts: |
|
Comments (none posted)
tcpdump: denial of service
| Package(s): | tcpdump |
CVE #(s): | CVE-2007-1218
|
| Created: | March 5, 2007 |
Updated: | November 15, 2007 |
| Description: |
Off-by-one buffer overflow in the parse_elements function in the 802.11
printer code (print-802_11.c) for tcpdump 3.9.5 and earlier allows remote
attackers to cause a denial of service (crash) via a crafted 802.11
frame. NOTE: this was originally referred to as heap-based, but it might be
stack-based. |
| Alerts: |
|
Comments (none posted)
terminal: arbitrary code execution
| Package(s): | terminal |
CVE #(s): | CVE-2007-3770
|
| Created: | August 13, 2007 |
Updated: | December 19, 2007 |
| Description: |
A vulnerability was found in the Xfce terminal program:
Lasse Karkkainen discovered that the function terminal_helper_execute()
in file terminal-helper.c does not properly escape the URIs before
processing.
|
| Alerts: |
|
Comments (none posted)
tetex: buffer overflow
| Package(s): | tetex |
CVE #(s): | CVE-2007-0650
|
| Created: | May 8, 2007 |
Updated: | May 13, 2008 |
| Description: |
A buffer overflow in the open_sty function in mkind.c for makeindex 2.14 in
teTeX might allow user-assisted remote attackers to overwrite files and
possibly execute arbitrary code via a long filename. NOTE: other overflows
exist but might not be exploitable, such as a heap-based overflow in the
check_idx function. |
| Alerts: |
|
Comments (1 posted)
tikiwiki: arbitrary code execution
| Package(s): | tikiwiki |
CVE #(s): | CVE-2007-5423
|
| Created: | October 22, 2007 |
Updated: | November 15, 2007 |
| Description: |
From the Gentoo advisory:
An attacker could execute arbitrary code with the rights of the user
running the web server by passing a specially crafted parameter string
to the tiki-graph_formula.php file. |
| Alerts: |
|
Comments (2 posted)
tk: denial of service
| Package(s): | tk8.3 tk8.4 |
CVE #(s): | CVE-2007-5137
|
| Created: | October 12, 2007 |
Updated: | March 17, 2009 |
| Description: |
It was discovered that Tk could be made to overrun a buffer when loading
certain images. If a user were tricked into opening a specially crafted GIF
image, remote attackers could cause a denial of service or execute
arbitrary code with user privileges. |
| Alerts: |
|
Comments (none posted)
tomcat: directory traversal
| Package(s): | tomcat |
CVE #(s): | CVE-2007-0450
|
| Created: | May 2, 2007 |
Updated: | February 27, 2008 |
| Description: |
Versions of tomcat prior to 5.5.22 do not properly filter filename separator characters, enabling information disclosure attacks. |
| Alerts: |
|
Comments (none posted)
tomcat: cross-site scripting
| Package(s): | tomcat |
CVE #(s): | CVE-2007-2449
CVE-2007-2450
|
| Created: | July 17, 2007 |
Updated: | February 17, 2009 |
| Description: |
Some JSPs within the 'examples' web application did not escape user
provided data. If the JSP examples were accessible, this flaw could allow a
remote attacker to perform cross-site scripting attacks (CVE-2007-2449).
Note: it is recommended the 'examples' web application not be installed on
a production system.
The Manager and Host Manager web applications did not escape user provided
data. If a user is logged in to the Manager or Host Manager web
application, an attacker could perform a cross-site scripting attack
(CVE-2007-2450). |
| Alerts: |
|
Comments (1 posted)
tomcat: multiple vulnerabilities
| Package(s): | tomcat |
CVE #(s): | CVE-2007-3382
CVE-2007-3385
CVE-2007-3386
|
| Created: | September 26, 2007 |
Updated: | September 13, 2010 |
| Description: |
Tomcat was found treating single quote characters -- ' -- as delimiters in
cookies. This could allow remote attackers to obtain sensitive information,
such as session IDs, for session hijacking attacks (CVE-2007-3382).
It was reported Tomcat did not properly handle the following character
sequence in a cookie: \" (a backslash followed by a double-quote). It was
possible remote attackers could use this failure to obtain sensitive
information, such as session IDs, for session hijacking attacks
(CVE-2007-3385).
A cross-site scripting (XSS) vulnerability existed in the Host Manager
Servlet. This allowed remote attackers to inject arbitrary HTML and web
script via crafted requests (CVE-2007-3386). |
| Alerts: |
|
Comments (none posted)
util-linux: privilege escalation
| Package(s): | util-linux |
CVE #(s): | CVE-2007-5191
|
| Created: | October 9, 2007 |
Updated: | January 7, 2008 |
| Description: |
mount and umount in util-linux call the setuid and setgid functions in the
wrong order and do not check the return values, which might allow attackers
to gain privileges via helpers such as mount.nfs. |
| Alerts: |
|
Comments (none posted)
vim: arbitrary code execution
| Package(s): | vim |
CVE #(s): | CVE-2007-2953
|
| Created: | July 30, 2007 |
Updated: | November 27, 2008 |
| Description: |
vim is vulnerable to a user-assisted attack in which vim may execute arbitrary code when helptags is run on data that has been maliciously crafted. |
| Alerts: |
|
Comments (none posted)
vixie-cron: weak permissions may cause errors
| Package(s): | vixie-cron |
CVE #(s): | CVE-2007-1856
|
| Created: | April 17, 2007 |
Updated: | December 4, 2007 |
| Description: |
During an internal audit, Raphael Marichez of the Gentoo Linux Security
Team found that Vixie Cron has weak permissions set on Gentoo, allowing
for a local user to create hard links to system and users cron files,
while a st_nlink check in database.c will generate a superfluous error. |
| Alerts: |
|
Comments (1 posted)
vlc: several vulnerabilities
| Package(s): | vlc |
CVE #(s): | CVE-2007-3316
CVE-2007-3467
CVE-2007-3468
|
| Created: | July 10, 2007 |
Updated: | March 10, 2008 |
| Description: |
Several remote vulnerabilities have been discovered in the VideoLan
multimedia player and streamer, which may lead to the execution of
arbitrary code. |
| Alerts: |
|
Comments (none posted)
wesnoth: denial of service
| Package(s): | wesnoth |
CVE #(s): | CVE-2007-3917
|
| Created: | October 12, 2007 |
Updated: | December 3, 2007 |
| Description: |
A malicious user could send a long chat message with multibyte characters,
the server would truncate the message on a fixed length, without paying
attention to the multibyte characters. This led to invalid utf-8 on the
client and an uncaught exception was thrown. |
| Alerts: |
|
Comments (none posted)
wireshark: multiple vulnerabilities
| Package(s): | wireshark |
CVE #(s): | CVE-2007-3390
CVE-2007-3392
CVE-2007-3393
|
| Created: | June 28, 2007 |
Updated: | February 27, 2008 |
| Description: |
The wireshark network traffic analyzer has three vulnerabilities
that can be used to create a denial of service. These include
off-by-one overflows in the iSeries dissector, vulnerabilities in
the MMS and SSL dissectors that can cause an infinite loop and
an off-by-one overflow in the DHCP/BOOTP dissector. |
| Alerts: |
|
Comments (none posted)
x11: xfs font server overflows
| Package(s): | x11 |
CVE #(s): | CVE-2007-4568
CVE-2007-4989
CVE-2007-4990
|
| Created: | October 4, 2007 |
Updated: | January 18, 2008 |
| Description: |
xorg-x11 has a number of integer and heap overflow vulnerabilities in
the xfs font server. A local attacker may be able to use these for
the execution of arbitrary code with elevated privileges. |
| Alerts: |
|
Comments (none posted)
xen: privilege escalation
| Package(s): | xen |
CVE #(s): | CVE-2007-4993
|
| Created: | October 9, 2007 |
Updated: | November 2, 2007 |
| Description: |
pygrub (tools/pygrub/src/GrubConf.py) in Xen 3.0.3, when booting a guest
domain, allows local users with elevated privileges in the guest domain to
execute arbitrary commands in domain 0 via a crafted grub.conf file whose
contents are used in exec statements. |
| Alerts: |
|
Comments (1 posted)
xen-utils: insecure temp files
| Package(s): | xen-utils |
CVE #(s): | CVE-2007-3919
|
| Created: | October 25, 2007 |
Updated: | May 16, 2008 |
| Description: |
The xen-utils collection of XEN administrative tools uses temporary files
insecurely. Local users can use this to truncate arbitrary files. |
| Alerts: |
|
Comments (none posted)
XFree86 X.org: integer overflows
| Package(s): | xfree86 x.org |
CVE #(s): | CVE-2007-1003
CVE-2007-1667
CVE-2007-1351
CVE-2007-1352
|
| Created: | April 3, 2007 |
Updated: | August 11, 2009 |
| Description: |
iDefense reported an integer overflow flaw in the XFree86 XC-MISC
extension. A malicious authorized client could exploit this issue to cause
a denial of service (crash) or potentially execute arbitrary code with root
privileges on the XFree86 server. (CVE-2007-1003)
iDefense reported two integer overflows in the way X.org handled various
font files. A malicious local user could exploit these issues to
potentially execute arbitrary code with the privileges of the X.org server.
(CVE-2007-1351, CVE-2007-1352)
An integer overflow flaw was found in the XFree86 XGetPixel() function.
Improper use of this function could cause an application calling it to
function improperly, possibly leading to a crash or arbitrary code
execution. (CVE-2007-1667) |
| Alerts: |
|
Comments (none posted)
xine-lib: arbitrary code execution
| Package(s): | xine-lib |
CVE #(s): | CVE-2007-1387
|
| Created: | March 13, 2007 |
Updated: | April 1, 2008 |
| Description: |
Moritz Jodeit discovered that the DirectShow loader of Xine did not
correctly validate the size of an allocated buffer. By tricking a user
into opening a specially crafted media file, an attacker could execute
arbitrary code with the user's privileges. |
| Alerts: |
|
Comments (none posted)
xine-lib: buffer overflow
| Package(s): | xine-lib |
CVE #(s): | CVE-2006-1664
|
| Created: | April 27, 2006 |
Updated: | February 27, 2008 |
| Description: |
xine-lib does an improper input data boundary check on
MPEG streams. A specially crafted MPEG file can be
created that can cause arbitrary code execution when the
file is accessed. |
| Alerts: |
|
Comments (none posted)
xmms: BMP handling vulnerability
| Package(s): | xmms |
CVE #(s): | CVE-2007-0653
CVE-2007-0654
|
| Created: | March 28, 2007 |
Updated: | July 26, 2011 |
| Description: |
xmms suffers from vulnerabilities in its handling of BMP images. Should a hostile image be included in an xmms skin, it could lead to code execution on the user's system. |
| Alerts: |
|
Comments (none posted)
X.org: temp file vulnerability
| Package(s): | X.org |
CVE #(s): | CVE-2007-3103
|
| Created: | July 12, 2007 |
Updated: | July 2, 2009 |
| Description: |
The X.Org X11 xfs font server has a temp file vulnerability in the
startup script. A local user can modify the permissions of the script
in order to elevate their local privileges. |
| Alerts: |
|
Comments (none posted)
xorg-server: local privilege escalation
| Package(s): | xorg-server |
CVE #(s): | CVE-2007-4730
|
| Created: | September 10, 2007 |
Updated: | January 24, 2008 |
| Description: |
Aaron Plattner discovered a buffer overflow in the Composite extension
of the X.org X server, which can lead to local privilege escalation. |
| Alerts: |
|
Comments (none posted)
xscreensaver, tempest: screen lock bypass
| Package(s): | xscreensaver, tempest |
CVE #(s): | CVE-2007-5585
|
| Created: | October 24, 2007 |
Updated: | November 6, 2007 |
| Description: |
From the Fedora advisory:
A bug was reported that xscreensaver unlocking password dialog crashes randomly. It is found this
problem occurs when GL hack is launched without gl helper binary installed. |
| Alerts: |
|
Comments (none posted)
xterm: local user unauthorized access
| Package(s): | xterm |
CVE #(s): | CVE-2007-2797
|
| Created: | August 27, 2007 |
Updated: | November 15, 2007 |
| Description: |
Previous versions of the xterm package assigned incorrect ownership and
write permissions to pseudo-terminal devices, permitting local users to
direct output to other users' xterm sessions. |
| Alerts: |
|
Comments (1 posted)
xulrunner, firefox, thunderbird: multiple vulnerabilities
| Package(s): | xulrunner, firefox, thunderbird |
CVE #(s): | CVE-2007-1095
CVE-2007-2292
CVE-2007-3511
CVE-2007-5334
CVE-2007-5337
CVE-2007-5338
CVE-2007-5339
CVE-2007-5340
CVE-2006-2894
|
| Created: | October 22, 2007 |
Updated: | May 12, 2008 |
| Description: |
From the Debian advisory:
CVE-2007-1095:
Michal Zalewski discovered that the unload event handler had access to
the address of the next page to be loaded, which could allow information
disclosure or spoofing.
CVE-2007-2292:
Stefano Di Paola discovered that insufficient validation of user names
used in Digest authentication on a web site allows HTTP response splitting
attacks.
CVE-2007-3511:
It was discovered that insecure focus handling of the file upload
control can lead to information disclosure. This is a variant of
CVE-2006-2894.
CVE-2007-5334:
Eli Friedman discovered that web pages written in Xul markup can hide the
titlebar of windows, which can lead to spoofing attacks.
CVE-2007-5337:
Georgi Guninski discovered the insecure handling of smb:// and sftp:// URI
schemes may lead to information disclosure. This vulnerability is only
exploitable if Gnome-VFS support is present on the system.
CVE-2007-5338:
"moz_bug_r_a4" discovered that the protection scheme offered by XPCNativeWrappers
could be bypassed, which might allow privilege escalation.
CVE-2007-5339:
L. David Baron, Boris Zbarsky, Georgi Guninski, Paul Nickerson, Olli Pettay,
Jesse Ruderman, Vladimir Sukhoy, Daniel Veditz, and Martijn Wargers discovered
crashes in the layout engine, which might allow the execution of arbitrary code.
CVE-2007-5340:
Igor Bukanov, Eli Friedman, and Jesse Ruderman discovered crashes in the
Javascript engine, which might allow the execution of arbitrary code.
|
| Alerts: |
|
Comments (1 posted)
Page editor: Jake Edge
Kernel development
Brief items
The current 2.6 prepatch is 2.6.24-rc2,
released, somewhat belatedly, on
November 6. "
There was nothing in particular holding this thing
up, I just basically just forgot to cut a -rc2 release last week."
Patches merged since -rc1 are mostly fixes, but there's also some DCCP
improvements, a flag to silence warnings about use of deprecated
interfaces, an asynchronous event notification API for SCSI/SATA (it tells
the system when a removable disk has been inserted), a Japanese
translation of the SubmittingPatches document, an ATA link power management
API, and a bit more x86 unification work. See
the short-form changelog for a list of
patches, or
the
long-form changelog for the details.
As of this writing, no patches have found their way into the mainline git
repository since the -rc2 release.
For older kernels: 2.6.22.11 and 2.6.22.12 came out on November 2
and 5, respectively. These releases contain a number of patches,
including one which is security-related for both people running Minix
filesystems. Greg Kroah-Hartman has
recently said that, contrary to previous
indications, the 2.6.22.x series will continue for a while yet.
2.6.16.56 and 2.6.16.57 were released on
November 1 and 5, respectively. They contain quite a few fixes,
several of which have vulnerability numbers associated with them.
Comments (none posted)
Kernel development news
We've already got way too many incomplete concepts and APIs in the
kernel. Maybe i'm over-worrying, but i fear we end up like with
capabilities or sendfile - code merged too soon and never completed
for many years - perhaps never completed at all. VMS and WNT did
those things a bit better i think - their API frameworks were/are
pervasive and complete, even in the corner cases.
--
Ingo Molnar
[W]hat concerns me is that stringbuf was good, but not great. Yet I
always think of the kernel as a bastion of really good C code and
practice, carefully honed by thoughtful coders. Here even the
unmeasured optimization attempts show a lack of effort on the part
of experienced kernel coders.
--
Rusty
Russell
What makes the code in the kernel so great is not that it goes in
perfect, it's that we whittle all code in the tree down over and
over again until it reaches it's perfect form. It is this
whittling system that allows us to thrust 25MB of changes into a
tree over a week and a half and it all works out.
--
David
Miller
Comments (none posted)
By Jonathan Corbet
November 6, 2007
The management of video hardware has long been an area of weakness in the
Linux system (and free operating systems in general). The X Window System
tends to get a lot of the blame for problems in this area, but the truth of
the matter is that the problems are more widespread and the kernel has
never made it easy for X to do this job properly. Graphics processors (GPUs) have
gotten steadily more powerful, to the point that, by some measures, they
are the fastest processor on most systems, but kernel support for the
programming of GPUs has lagged behind. A lot of work is being done to remedy
this situation, though, and an important component of that work has just
been put forward for inclusion into the mainline kernel.
Once upon a time, video memory comprised a simple frame buffer from which
pixels were sent to the display; it was up to the system's CPU to put
useful data into that frame buffer. With contemporary GPUs, the memory
situation has gotten more complex; a typical GPU can work with a few
different types of memory:
- Video RAM (VRAM) is high-speed memory installed directly on the video
card. It is usually visible on the system's PCI bus, but that need
not be the case. There is likely to be a frame buffer in this memory,
but many other kinds of data live there as well.
- In many lower-end systems, the "video RAM" is actually a dedicated
section of general-purpose system memory. That RAM is set aside for
the use of the GPU and is not available for other purposes. Even
adapters with their own VRAM may have a dedicated RAM region as well.
- Video adapters contain a simple memory management unit (the graphics
address remapping table or GART) which can be used to map various
pages of system memory into the GPU's address space. The result is
that, at any time, an arbitrary (scattered) subset of the system's RAM
pages are accessible to the GPU.
Each type of video memory has different characteristics and constraints.
Some are faster to work with (for the CPU or the GPU) than others. Some types
of VRAM might not be directly addressable by the CPU. Memory may or may not
be cache coherent - a distinction which requires careful programming to
avoid data corruption and performance problems. And graphical applications
may want to work with much larger amounts of video memory than can be made
visible to the GPU at any given time.
All of this presents a memory management problem which, while being similar
to the management needs of system RAM, has its own special constraints. So
the graphics developers have been saying for years that Linux needs a
proper manager for GPU-accessible memory. But, for years, we have done
without that memory manager, with the result that this management task has
been performed by an ugly combination of code in the X server, the kernel,
and, often, in proprietary drivers.
Happily, it would appear that those days are coming to an end, thanks to
the creation of the translation-table maps (TTM) module written primarily
by Thomas Hellstrom, Eric Anholt, and Dave Airlie. The TTM code provides a
general-purpose memory manager aimed at the needs of GPUs and graphical
clients.
The core object managed by TTM, from the point of view of user space, is
the "buffer object." A buffer object is a chunk of memory allocated by an
application, and possibly shared among a number of different applications.
It contains a region of memory which, at some point, may be operated on by
the GPU. A buffer object is guaranteed not to vanish as long as some
application maintains a reference to it, but the location of that buffer is
subject to change.
Once an application creates a buffer object, it can map that object into
its address space. Depending on where the buffer is currently located,
this mapping may require relocating the buffer into a type of memory which
is addressable by the CPU (more accurately, a page fault when the
application tries to access the mapped buffer would force that move).
Cache coherency issues must be handled as well, of course.
There will come a time when this buffer must be made available to the GPU
for some sort of operation. The TTM layer provides a special "validate"
ioctl() to prepare buffers for processing; validating a buffer
could, again, involve moving it or setting up a GART mapping for it. The
address by which the GPU will access the buffer will not be known until it
is validated; after validation, the buffer will not be moved out of the
GPU's address space until it is no longer being operated on.
That means that the kernel has to know when processing on a given buffer
has completed; applications, too, need to know that.
To this end, the TTM layer provides "fence" objects. A fence is
a special operation which is placed into the GPU's command FIFO. When the
fence is executed, it raises a signal to indicate that all instructions
enqueued before the fence have now been executed, and that the GPU will no
longer be accessing any associated buffers. How the signaling works is
very much dependent on the GPU; it could raise an interrupt or simply write
a value to a special memory location. When a fence signals, any associated
buffers are marked as no longer being referenced by the GPU, and any
interested user-space processes are notified.
A busy system might feature a number of graphical applications, each of
which is trying to feed buffers to the GPU at any given time. It is not at
all unlikely that the demands for GPU-addressable buffers will exceed the
amount of memory which the GPU can actually reach. So the TTM layer will
have to move buffers around in response to incoming requests. For
GART-mapped buffers, it may be a simple matter of unmapping pages from
buffers which are not currently validated for GPU operations. In other
cases, the contents of the buffers may have to be explicitly copied to
another type of memory, possibly using the GPU's hardware to do so. In such cases,
the buffers must first be invalidated in the page tables of any user-space
process which has mapped it to ensure that the buffer will not be written
to during the move. In other words, the TTM really does become an
extension of the system's memory management code.
The next question which is bound to come up is: what happens when graphical
applications want to use more video memory than the system as a whole can
provide? Normal system RAM pages which are used as video memory are locked
in place (and unavailable for other uses), so there must be a clear limit
on the number of such pages which can be created. The current solution to
this problem is to cap the number of such pages at a fraction of the available low memory
- up to 1GB on a 4GB, 32-bit system. It would be nice to be able to extend
this memory by writing unused pages to swap, but the Linux swap implementation is
not meant to work with pages owned by the kernel. The long-term plan would
appear to be to let the X server create a large virtual range with
mmap(), which would then be swappable. That functionality has not
yet been implemented, though.
There is a lot more to the TTM code than has been described here; some more
information can be found in this TTM overview [PDF].
For the time being, this code works with a patched version of the Intel
i915 driver, with other drivers to be added in the future. TTM has been
proposed for inclusion into -mm now and merger into the mainline for
2.6.25. The main issue between now and then will be the evaluation of the
user-space API, which will be hard to change once this code is merged.
Unfortunately, documentation for this API appears to be scarce at the
moment.
Comments (7 posted)
By Jonathan Corbet
November 6, 2007
Last week's article on
containers discussed process ID namespaces. The purpose of these
namespaces is to manage which processes are
visible to a process inside a container. The heavy use of PIDs to identify
processes has caused this particular patch to go through a long period of
development before being merged for 2.6.24. It appears that there are some
remaining issues, though, which could prevent this feature from being
available in the next kernel release. As is often the case, the biggest
problems come down to user-space API issues.
On November 1, Ingo Molnar pointed out that
some
questions raised by Ulrich Drepper back in early 2006 remained
unanswered. These questions all have to do with what happens when the use
of a PID escapes the namespace that it belongs to. There are a number of
kernel APIs related to interprocess communication and synchronization where
this could happen. Realtime signals carry process ID information, as do
SYSV message queues. At best, making these interfaces work properly across
PID namespaces will require that the kernel perform magic PID translations
whenever a PID crosses a namespace boundary.
The biggest sticking point, though, would appear to be the robust futex
mechanism, which uses PIDs to track which process owns a specific futex at
any given time. One of the key points behind futexes is that the fast
acquisition path (when there is no contention for the futex) does not
require the kernel's involvement at all. But that acquisition path is also
where the PID
field is set. So there is no way to let the kernel perform magic PID
translation without destroying the performance feature that was the
motivation for futexes in the first place.
Ingo, Ulrich, and others who are concerned about this problem would like to
see the PID namespace feature completely disabled in the 2.6.24 release so
that there will be time to come up with a proper solution. But it is not
clear what form that solution would take, or if it is even necessary.
The approach seemingly favored by Ulrich is
to eliminate some of the fine-grained control that the kernel currently
provides over the sharing of namespaces. With the 2.6.24-rc1 interface, a
process which calls clone() can request that the child be placed
into a new PID namespace, but that other namespaces (filesystems, for
example, or networking) be shared. That, says Ulrich, is asking for trouble:
This whole approach to allow switching on and off each of the
namespaces is just wrong. Do it all or nothing, at least for the
problematic ones like NEWPID. Having access to the same filesystem
but using separate PID namespaces is simply not going to work.
Coalescing a number of the namespace options into a single "new container" bit
would help with the current shortage of clone bits. But it might well not
succeed in solving the API issues. Even processes with different
filesystem namespaces might be able to find the same futex via a file
visible in both namespaces. The passing of credentials over Unix-domain
sockets could throw in an interesting twist. And it would seem that there
are other places where PIDs are used that nobody has really thought of
yet.
Another possible approach, one which hasn't really featured in the current
debate, would be to create globally-unique PIDs which would work across
namespaces. The current 32-bit PID value could be split into two fields,
with the most significant bits indicating which namespace the PID
(contained in the least significant bits) is defined in. Most of the time,
only the low-order part of the PID would be needed; it would be interpreted
relative to the current PID namespace. But, in places where it makes
sense, the full, unique PID could be used. That would enable features like
futexes to work across PID namespaces.
There are still problems, of course. The whole point of PID namespaces is
to completely hide processes which are outside of the current namespace;
the creation and use of globally-unique PIDs pokes holes in that
isolation. And there's sure to be some complications in the user-space API
which prove to be hard to paper over.
Then, there is the question of whether this problem is truly important or
not. Linus thinks not, pointing out that
the sharing of PIDs across namespaces is analogous to the use of
PIDs in lock files shared across a network. PID-based locking does not work on
NFS-mounted files, and PID-based interfaces will not work between PID
namespaces. Linus concludes:
I don't understand how you can call this a "PID namespace design
bug", when it clearly has nothing what-so-ever to do with pid
namespaces, and everything to do with the *futexes* that blithely
assume that pid's are unique and that made it part of the
user-visible interface.
One could argue that the conflict with PID namespaces was known when the
robust futex feature was merged and that something could have been done at
that time. But that does not really help anybody now. And, in any case,
there are issues beyond futexes.
PID namespaces are a
significant complication of the user-space API; they redefine a basic
value which has had a well-understood meaning since the early days of
Unix. So it is not surprising that some interesting questions have come to
light. Getting solid answers to nagging API questions has not always been
the strongest point of the Linux development process, but things could
always change. With luck and some effort, these questions can be worked
through so that PID namespaces, when they become available, will have
well-thought-out and well-defined semantics in all cases and will support
the functionality that users need.
Comments (19 posted)
By Jake Edge
November 7, 2007
As the amount of RAM installed in systems grows, it would seem that
memory pressure should reduce, but, much like salaries or hard disk
space, usage grows to fill (or overflow) the available capacity. Operating
systems have dealt with this problem for decades by using virtual memory
and swapping, but techniques that work well with 4 gigabyte address spaces
may not scale well to systems with 1 terabyte. That scalability problem is
at the root of several different ideas for changing the kernel, from
supporting larger page
sizes to avoiding memory
fragmentation.
Another approach to scaling up the memory management subsystem was
recently posted to linux-kernel by Rik van Riel. His
patch is meant to reduce the
amount of time the kernel spends looking for a memory page to evict when it
needs to load a new page. He lists two main deficiencies of the current
page replacement algorithm. The first is that it sometimes evicts the wrong
page; this cannot be eliminated, but its frequency might be reduced. The second is the heart of what he is trying to accomplish:
The kernel scans over pages that should not be evicted. On systems with a
few GB of RAM, this can result in the VM using an annoying amount of CPU.
On systems with >128GB of RAM, this can knock the system out for hours
since excess CPU use is compounded with lock contention and other issues.
A system with 1TB of 4K pages has 256 million pages to deal with.
Searching through the pages stored on lists in the kernel can take an
enormous amount of time. According to van Riel, most of that time is spent
searching pages that won't be evicted anyway, so in order to deal with
systems of that size, the search needs to focus in on likely candidates.
Linux tries to optimize its use of physical memory, by keeping it full,
using any memory not needed by processes for caching file data in the page
cache. Determining which pages are not being used by processes and
striking a balance between the page cache and process memory is the job of
the page replacement algorithm. It is that algorithm that van Riel would
eventually like to see replaced.
The current set of patches, though, take a smaller step. In today's
kernel, there are two lists of pages, active and inactive, for each memory
zone. Pages move
between them based on how recently they were used. When it is time
to find a page to evict, the kernel searches the inactive list for
candidates. In many cases, it is looking for page cache pages,
particularly those that are unmodified and can simply be dropped, but has
to wade through an enormous number of process-memory pages to find them.
The solution proposed is to break both lists apart, based on the type of
page. Page cache pages (aka file pages) and process-memory pages (aka
anonymous pages) will each live on their own active and inactive lists.
When the kernel is looking for a specific type, it can choose the proper
list to reduce the amount of time spent searching considerably.
This patch is an update to an earlier proposal by van Riel, covered here last March. The
patch is now broken into ten parts, allowing for easier reviewing. It has
also been updated to the latest kernel, modified to work with various
features (like lumpy reclaim)
that have been added in the interim.
Additional features are planned to be added down the road, as outlined on
van Riel's page
replacement design web page. Adding a non-reclaimable list for pages
that are locked to physical memory with mlock(), or are part of a
RAM filesystem and cannot be evicted, is one of the first changes listed.
It makes little sense to scan past these pages.
Another feature that van Riel lists is to track recently evicted pages so
that, if they get loaded again, the system can reduce the likelihood of
another eviction. This should help keep pages in the page cache that get
accessed somewhat infrequently, but are not completely unused. There are
also various ideas about limiting the sizes of the active and inactive
lists to put a bound on worst-case scenarios. van Riel's plans also
include making better decisions about when to run the out-of-memory (OOM)
killer as well as making it faster to choose its victim.
Overall, it is a big change
to how the page replacement code works today, which is why it will be
broken up into smaller chunks. By making changes that add incremental
improvements, and getting them into the hands of
developers and testers, the hope is that the bugs can be shaken out more
easily. Before that can happen, though, this set of patches must
pass muster with the kernel hackers and be merged. The external
user-visible impacts of these particular patches should be small, but they are fairly intrusive,
touching a fair amount of code. In addition, memory management patches
tend to have a tough path into the kernel.
Comments (2 posted)
Patches and updates
Kernel trees
Core kernel code
Development tools
Device drivers
Filesystems and block I/O
Memory management
Architecture-specific
Security-related
Virtualization and containers
Page editor: Jonathan Corbet
Distributions
News and Editorials
By Rebecca Sobol
November 7, 2007
When an article titled
Codec Buddy in Fedora
8 was posted to LWN earlier this week it generated quite a bit
comment... 33 comments posted as of this writing. The LWN thread caused
another
long string of comments, this time
on the
Fedora
advisory board mailing list, in which proprietary software is compared
to heroin. Seth Vidal says in the initial posting: "
I don't care
about needles and I don't want to ween the addicts off."
Codecs remain a sticky issue because they are patent encumbered. Windows
users are used to paying for an operating system, and often codec licensing
is included in the cost. When they download an MP3 file they expect it to
play. On Linux systems in the United States, and anywhere else that
recognizes the codec patents, MP3s don't play and it makes users very
grumpy.
Codec Buddy attempts to educate Fedora users about the patent encumbered
nature of codecs and then allows the user to pay for license through Fluendo, a company located in Barcelona,
Spain. According to a Fluendo press
release: "The Fluendo codecs plug directly into the popular and
widely used GStreamer multimedia framework available on all the major
GNU/Linux and Solaris systems. Users of GNU/Linux and Solaris operating
systems have previously lacked solutions which enabled them to license and
use popular media formats such as Windows Media, MPEG-2 and MPEG-4 in
accordance with the laws of their country. Through Fluendo's agreements
with Microsoft and MPEG LA such a solution is now available."
The Fedora advisory board has since been updated with some relevant conclusions.
Support for current iPod devices can be provided by Fedora - getting around
Apple's obfuscation is not seen as a DMCA violation. The rules on linking
to encumbered software have also been loosened: "This means that we
can put a page up on the fedoraproject.org wiki, which carefully explains
that there is an optional addon repository called Livna, which contains
packages that for a variety of reasons, are not included in the normal
Fedora repositories. We should not specify these reasons, and if someone
asserted their patents against something in Livna, we would need to take
the page down."
Multimedia is important to providing a popular desktop. For many users it
is the most important part of the desktop. A Linux desktop will not become
wildly popular until it becomes easy to share music and videos with
friends. Education is great, teaching people about the values of freedom
with respect to software is a worthy goal. Not everyone wants to learn
that lesson, especially when they already have gigabytes of music in MP3
format.
Your editor has over 100 gigabytes of music in flac format (thanks to LWN editor
Forrest Cook) and 0 MP3s. Unfortunately there aren't many devices that
will play flac files. Salespeople in stores that sell iPods and the like
have no idea what a flac is, and don't care in my experience. There's a
long road ahead until free formats are more popular than the formats that are
currently more readily available.
Comments (15 posted)
New Releases
The third Fedora 8 release candidate is out. "
Unless something goes
terribly wrong, these will be the same bits
that will go to the mirrors for the final Fedora 8 release." So
this would be a good time for anybody who is interested in Fedora 8 to
do some testing. (See
the Fedora 8
tour for a preview of what's in this release).
Full Story (comments: none)
Following closely on the heels of the main F8 RC 3 release is the Fedora
Electronic Lab spin.
Full Story (comments: none)
Fedora leader Max Spevack has sent out a "personal Fedora 8 release
announcement," meant to tide Fedora users over until the bits become
available. "
Fedora 7 and Fedora 8 need to be thought of together in that context --
the community's goals and priorities being paramount. The overarching goal
for both of these releases has been in the realm of custom spins."
Full Story (comments: none)
The Fedora Unity project has announced the release of new ISO Re-Spins (DVD
and CD Sets) of Fedora 7. These Re-Spin ISOs are based on Fedora 7 and all
updates released as of October 30, 2007. "
The ISO images are
available for i386 and x86_64 architectures via jigdo starting Wednesday,
November 7th, 2007. We have included CD Image sets for those in the Fedora
community that do not have DVD drives or burners available."
Full Story (comments: none)
OpenBSD 4.2 has been released. "
We dedicate this release to the memory of long-time developer
Jun-ichiro 'itojun' Itoh Hagino, who focused his life on IPv6
deployment for everyone. Without his BSD and IETF participation, IPv6
would not be where it is today." There's a lot of new stuff in this
release, click below for details.
Full Story (comments: 10)
Sun's "Project Indiana" has announced the release of the first "OpenSolaris
Developer Preview." "
This is an x86-based LiveCD install image, containing some new and emerging
OpenSolaris technologies. This may result in instabilities that lead to system
panics or data corruption." Note that this release is governed by
the non-free
OpenSolaris
Binary License, even though it contains a fair amount of GPL-licensed
code. Celebration in the Solaris community seems to be tempered by
a
massive flame war over Sun's decision to use the "OpenSolaris" name, which,
it seems, is seen as eclipsing all other Solaris-based distributions.
Full Story (comments: 5)
Live versions of openSUSE 10.3 are available as GNOME or KDE Live CDs. Both
contain the same software as the 1 CD installation versions from launch
time - just as live system.
Full Story (comments: none)
Launchpad, the development platform for Ubuntu and its siblings, is now at
version 1.1.10. Some of the highlights in this release include: faster
translations imports, new badges in branch listings, create FAQs from
solved as well as open questions, and much more.
Full Story (comments: none)
Distribution News
Debian GNU/Linux
Sam Hocevar has an update from the office of the Debian Project Leader.
Topics include a new member of the DSA team, Nexenta (a Debian/OpenSolaris
distribution), and conferences.
Full Story (comments: none)
Fedora
Here's a reminder to Fedora users: Fedora Core 6 will reach its end of life
for updates on Friday, December 7, 2007.
Full Story (comments: none)
There are plans to rebase the X server to a git master beginning Monday
(November 12). Fedora rawhide users may experience significant breakage of
various drivers and other problems. This could be a good time to just
enjoy Fedora 8 for a week or so. Click below for details.
Full Story (comments: none)
The linux-noob.com site has been
tracking Fedora
developement since the beginning of Fedora. The site has recently been
updated to include Fedora 8 (Werewolf). "
Well by now you are
hopefully either downloading Werewolf or using it. The dust has hardly
settled on the release of WereWolf and even so, Fedora's development is
continuing with tremendous force, the plans, seeds and ideas for Fedora 9
(http://fedoraproject.org/wiki/Releases/9/FeatureList)
are already being put in place."
Comments (none posted)
Other distributions
On the
Trustix Secure Linux home page
is this announcement: "
Comodo regrets to announce that it will
discontinue all distribution, updates and direct support for Trustix Secure
Linux effective December 31, 2007. The user support forum at
www.trustix.org/forum will continue to remain online throughout
2008."
Comments (1 posted)
The
GNU-Darwin project has
announced the release of Darwin-9 source code on the Apple website.
Apple's OS X is built with Darwin's BSD-based kernel. "
I noticed
that no binary release is planned, probably due to Apple's unwillingness to
release the binary drivers to the Darwin community at this time. The
reasons for this are left as an exercise for the user."
Full Story (comments: none)
Distribution Newsletters
Fedora Weekly News #108 is out. Articles in this issue include "Fedora 8 Release is on its Way Out", "Fedora Core 6 End of Life", "Upgrading from Rawhide to Final Release", "Fedora struggles with harm reduction via CodecBuddy", and more. Click below for the issue.
Full Story (comments: none)
The
Gentoo
Weekly Newsletter for October 15, 2007 has a Planet and Forums summary,
Apache Tips and Tricks, and several other topics.
Comments (none posted)
The 64th issue of Ubuntu Weekly News is out with a report from the Ubuntu Developer Summit, information about Mythbuntu (Ubuntu MythTV distribution) for Gutsy, FOSSCamp, and more. Click below to read it.
Full Story (comments: 10)
The
DistroWatch
Weekly for November 5, 2007 is out. "
An excellent week for open
source software enthusiasts as it finally brought the first public preview
of the OpenSolaris-based Indiana, a new operating system trying to take
over our desktops. Will it succeed? Although the release was marred by
controversies and heated discussions on the project's mailing list, the
first reviews indicate that Indiana is on the right track. In other news, a
new distribution called gOS gets bundled with a US$199 Linux computer,
Mandriva's François Bancilhon writes an angry open letter to Microsoft,
Debian introduces a new KDE4 live CD, Fedora prepares for a big release
day, and Kubuntu developers ponder the future of the project. Finally,
don't miss the featured article which looks at the recently released Ubuntu
Studio 7.10."
Comments (none posted)
Newsletters and articles of interest
HowtoForge
explains the process of installing Ubuntu Studio 7.10.
"
This document describes how to set up an Ubuntu Studio 7.10 desktop. The result is a fast, secure and extendable system with focus on multimedia creation - the real-time (RT) kernel is installed by default. It provides all you need for daily work and entertainment."
Comments (none posted)
Interviews
Fedora 8 will ship with Codec Buddy, a simple click-through GUI for
enabling playback of various kinds of media. This
article
looks at Codec Buddy and features an interview with Thomas Vander
Stichele and Bastien Nocera. "
B: The main reason why codeina/Codec
Buddy works is Fluendo's backing. Their offering of the MP3 plugin for free
(as in beer) means that we were going to be able to offer that critical
feature to our users. Without that free codec, I don't think that the
project would have taken off the ground."
Comments (38 posted)
O'ReillyNet
reviews OpenBSD 4.2.
"
OpenBSD is famous for its focus on security. Today, November 1st, the team is proud to announce Release 4.2.
Even though security is still there, this release comes with some amazing performance improvements: basic benchmarks showed PF being twice as fast, a rewrite of the TLB shootdown code for i386 and amd64 cut the time to do a full package build by 20 percent (mostly because all the forks in configure scripts have become much cheaper), and the improved frequency scaling on MP systems can help save nearly 20 percent of battery power."
Comments (none posted)
Distribution reviews
Jes Hall (aka canllaith)
takes a
look at Kubuntu 7.10. "
I do enjoy the Kubuntu development
cycle. Just as I'm starting to feel that my stable, long-configured system
is starting to get a little blase, the new version is just around the
corner. I eagerly upgraded to Kubuntu Gutsy when it was released on my
faithful Vaio TX. Gutsy has been released for a few weeks now, so consider
these not my first impressions but my opinion formed over 2 solid weeks of
using Kubuntu as my main operating system at work." (Found at
KDE.News)
Comments (16 posted)
Page editor: Rebecca Sobol
Development
By Forrest Cook
November 7, 2007
It all started simply enough, your author has been playing with
the recently released Ubuntu 7.10 "Gutsy Gibbon" release on several test
machines.
The plan is to migrate a number of machines that run older
distributions, mainly Ubuntu 7.04 "Feisty Fawn", over to Gutsy Gibbon.
This will allow access to the latest and greatest application releases.
The migration process is not new, a list of essential applications
has been kept for a number of years over numerous distributions and
distribution versions.
For a long time, one of the essential applications was
XMMS,
the X Multimedia System. XMMS is a basic music player with
a Graphical User Interface that has always been a good tool for
manually playing tracks from an online
audio collection.
The majority of the collection consists of
FLAC files, with
a few .wav, .mp3 and .ogg files thrown in for variety.
Unfortunately, the Gutsy Gibbon release just deprecated
xmms-flac, the flac file plugin for XMMS.
XMMS is largely regarded as nearing the end of its useful life,
distributions seem to be deprecating it in succession.
Despite this, XMMS development
has not stopped
completely.
The XMMS2
project was created to be a replacement for XMMS, but development seems to be
moving slowly. The current XMMS2 development version (0.2) dates back to
May 20, 2007.
A bit of digging through the
Ubuntu Forums
showed that other people were also missing the xmms-flac package.
One of the more popular replacements was
Audacious, not to be confused with the
Audacity
audio editor. Your author decided to be lazy and try something new
instead of of spending time building a deprecated package.
Audacious version 1.3.2 was installed from the
Ubuntu repositories with no trouble. This lags the
current release, which is at version 1.4.0.
Those who are familiar with XMMS will notice that Audacious
has an almost identical look and feel. In fact, the project
FAQ
starts off by stating that:
"Audacious is a fork of beep-media-player 0.9.7.1.",
AKA XMMS.
The basic Audacious package (on Ubuntu) includes
decoder plugins for the following media types:
Apple (AAC), CD FLAC, MP4, MPEG (MPC), Ogg Vorbis, WAV and WMA.
Some basic visualization effects and a graphic equalizer are
also included.
Installing the Ubuntu audacious-plugins-extra package adds a number of
interesting visualization and effects plugins.
Unfortunately, one nice XMMS feature that seems to be missing in
Audacious is the Play Directory file selector that shows
up when right-clicking the mouse on the Sample Rate/Stereo part
of the display.
To achieve the same functionality, one
has to select Play File
then select all of the files using the shift-right mouse combination.
This also has the unexpected effect of causing an
Add To Bookmarks/Show Hidden Files popup to show up.
Besides that one missing feature, Audacious seems to do everything
one would expect from XMMS.
As noted in the Ubuntu Forums, Audacious does seem to be a
bit of a memory hog compared to XMMS.
The top utility showed the Audacious Memory footprint to be around
21MB resident/ 200 MB virtual versus 8MB resident/ 45 MB virtual
for XMMS. Code bloat is nothing unique to Audacious, fortunately
the average amount of system RAM is also growing.
Audacious should easily take the place of XMMS on Gutsy Gibbon and
forthcoming Ubuntu releases, it now has a place on your author's list of
essential packages.
Comments (16 posted)
System Applications
Clusters and Grids
Version 2.3.1 of rsplib is out.
"
rsplib is the Open Source implementation (GPLv3) of the IETF's upcoming
standard for Reliable Server Pooling (RSerPool). It provides protocols and
functionalities for the management of server pools and sessions between
users and pools. In particular, RSerPool takes care for server selection and
session failover support among servers of a pool. The rsplib package contains
a library for the session communication (the rsplib), an implementation of
the pool management component (registrar) as well as multiple example service
implementations."
Full Story (comments: none)
Database Software
The November 4, 2007 edition of the Postgres Weekly News
is online with the latest PostgreSQL DBMS articles and resources.
Full Story (comments: none)
Version 3.5.2 of
SQLite, a light weight
DBMS, is out.
"
This is an incremental release that fixes several minor problems, adds some obscure features, and provides some performance tweaks. Upgrading is optional.
The experimental compile-time option SQLITE_OMIT_MEMORY_ALLOCATION is no longer supported. On the other hand, it is now possible to compile SQLite so that it uses a static array for all its dynamic memory allocation needs and never calls malloc. Expect to see additional radical changes to the memory allocation subsystem in future releases."
Comments (none posted)
Embedded Systems
Unstable version 1.8.0 of
BusyBox , a collection of command line
tools for embedded systems, is out.
"
Note: this is probably the very last release with lash. It will be dropped. Please migrate to hush." Many other changes have been
made to the code.
Comments (none posted)
Filesystem Utilities
Version 0.04 of FOG has been
announced.
"
FOG is Free, Open-source ghost, a computer imaging/rescue suite. A free alt. to Ghost, used to image Windows XP, Vista PCs using PXE, PartImage, and a Web Gui to tie it together. Soon to add memory test, disk test, disk wipe and av scan.
We are proud to release Version 0.04 of FOG. This version adds some advanced boot options like disk wiping."
Comments (1 posted)
Mail Software
Google has put up
a
page for people writing Greasemonkey scripts to rearrange the Gmail
interface. "
Google acknowledges that some people are going to change
their own experience of our web applications regardless of what we
do. Resistance, as they say, is futile. It would also be somewhat
hypocritical. After all, a Google employee wrote Greasemonkey in the first
place, another wrote these scripts to add functionality to Gmail, and a
third wrote two books on the subject (and these docs). Instead, we would
like to provide a little help to make such scripts more robust."
Comments (10 posted)
Version 8.14.2 of the sendmail mail transfer agent is out.
"
Sendmail, Inc., and the Sendmail Consortium announce the availability of sendmail 8.14.2 which fixes some problems, e.g.,
- an important bug in the milter function smfi_chgfrom() which could cause the loss of a message body.
- the handling of queued messages with 8 bit characters in From: or To: header which could be "mistaken" for internal control characters during a queue run and trigger various consistency checks.
- the handling of lines longer than MAXLINE-1 characters in certain cases."
Full Story (comments: none)
Printing
Version 1.3.4 of CUPS, the
Common UNIX Printing System, has been
announced.
"
CUPS 1.3.4 fixes a buffer overflow bug along with some localization, authentication, and printing bugs."
Comments (none posted)
Desktop Applications
Audio Applications
Version 0.99.80 of AlsaPlayer has been announced.
"
I am proud to announce that AlsaPlayer-0.99.80 got stable, thanks to the hard
work of every one that contributed to the GTK2 interface and other functions,
as well that by submitting/fixing bugs.
This release is a bug fixes release."
Full Story (comments: none)
Version 3.1 of SuperCollider, a real-time audio synthesis programming language, has been announced.
"
A lot of changes and improvements have been made over the last few
weeks leading up to this release. If you haven't upgraded in a while,
now would be a good time to do so!"
Full Story (comments: none)
Business Applications
Version 7.1 Update 1 of Onepoint Project has been
announced.
"
We strongly recommend this update to everyone who is using Onepoint Project. Onepoint Project is the first open source project leadership software solution integrating project planning, progress tracking, controlling, monitoring and reporting into a single, easy-to-use Web 2.0 or desktop application. The solution focuses mainly on single and multi-project management, but provides also a number of practical portfolio management and resource management features."
Comments (none posted)
Desktop Environments
The
GNOME 2.22 roadmap has been
posted; it contains a long list of items which are expected to find their
way into the upcoming 2.22 release (and beyond). Among many other things,
2.22 looks to include
Anjuta
DevStudio,
Empathy, and
Cheese.
Comments (4 posted)
Version 2.21.1 of the GNOME desktop has been released.
"
This is the first release of the GNOME 2.21.x series. This opens
the development cycle for what will become the stable GNOME 2.22.x
release."
Full Story (comments: none)
Version 2.21.1 of GARNOME, the bleeding edge GNOME distribution, is out.
"
This release includes all of GNOME 2.21.1 plus a
whole bunch of updates and fixes that were released after the GNOME
freeze date.
This is the first development release on our road towards GNOME 2.22.0,
which will be released in March 2008."
Full Story (comments: none)
The following new GNOME software has been announced this week:
You can find more new GNOME software releases at
gnomefiles.org.
Comments (none posted)
The following new KDE software has been announced this week:
You can find more new KDE software releases at
kde-apps.org.
Comments (none posted)
The November 4, 2007 edition of the
KDE Commit-Digest has been
announced.
The content summary says:
"
Krushing day concludes with focused bug fixing for the KDE 4.0 release. Work on various "runners" in Plasma, with general work on applets and the addition of binary and fuzzy clocks. Consraints support in the Step physics simulation package. Work on icons across KDE Games applications. Support for the Scalix groupware server in KDE-PIM. Entry editing improvements in KOrganizer. Improved Blu-Ray format support in K3b. Solid gets support for Video(4Linux) devices. Kopete uses Solid for network detection and support of audio/video devices. Various progress across KOffice."
Comments (none posted)
The following new Xorg software has been announced this week:
- XCB 1.1 (new features, bug fixes and documentation work)
More information can be found on the
X.Org Foundation wiki.
Comments (none posted)
Frank Pohlmann
discusses configuration of the X window system on O'Reilly.
"
Many Linux and Unix desktops and window managers should actually be called X Desktops, since they use the X Window framework to provide users with a full, bitmapped system GUI. Still, most Linux and Unix users would not actually see X Window directly, except when they run X applications, like the xterm and rxvt terminals or some fairly basic games. On its own, X Window requires, but does not provide software to manage and display flexible GUI elements, e.g., windows. It provides the primitives to display them, however, including the ability to draw graphical elements and, of course, strings of characters."
Comments (none posted)
Electronics
Version 3.1.1 of GNU Radio, a control system for a software defined radio transmitter/receiver, is out.
"
This is an important bug fix release that clears up some longstanding
issues in the USRP FPGA code and some recent regressions in the GNU
Radio examples. It is recommended that you upgrade to this version if
you are tracking the stable releases."
Full Story (comments: none)
Version 0.9.55 of gSpiceUI, a GUI for two freely available SPICE electronic circuit simulation engines, has been
announced.
"
Things to note with the this release :
- Makefiles have been modified. If anyone has problems let me know.
- Can now tell the src/Makefile which version of wxWidgets to compile
against. Good for package maintainers.
- The sources are now in the SVN repository on SourceForge."
Comments (none posted)
Games
The WorldForge game project has
announced
version 0.5.14 of Cyphesis.
"
Cyphesis is a small to medium scale server for WorldForge games, with builtin AI. This version includes the demo game Mason which is currently in development. This release is intended for server administrators wishing to run a Mason server and World developers developing new worlds or game systems."
Comments (none posted)
GnomeDesktop.org
covers the release of PyChess version 0.8 beta.
"
The long development time covers a close to total rewrite, the most
throughout testing for a PyChess release yet, and a massive new base of
features. Many of which users have been screaming since the first alpha of
PyChess."
Comments (none posted)
GUI Packages
GnomeDesktop
covers
the release of Anjuta DevStudio 2.3.0, a GUI design tool.
"
This release is highly developmental and contains lot of new stuffs, including beefed up debugger support, new icons, new file manager plugin, friendly glade designer integration as documents, preferences reorganization, improved code assistance, improved plugin framework for language bindings and lot more."
Comments (1 posted)
Version 3.5.6 of SPTK, the Simply Powerful ToolKit, has been
announced.
"
This release introduces general UTF-8 compatibility of the whole toolkit. It means that most of the components work with UTF-8 just fine.
The GUI components, however, require FLTK-utf8 in order to work with UTF-8. SPTK automatically selects FLTK-utf8 if both FLTK versions are installed on the system. Also, for masked inputs, UTF-8 masks with non-ASCII chars wouldn't work correctly."
Comments (none posted)
wxBlog
previews the upcoming release of the wxWidgets 3 GUI toolkit.
"
The first alpha version of wxWidgets 2.0 was released 10 and a half years ago and we are still (only) at version 2.8.6 right now so the wxWidgets version numbers don't change very quickly as we, with the disdain proper to free software developers, don't really like inflating them for marketing purposes. However soon -- hopefully in the beginning of the next year -- we will release wxWidgets 3.0 which will be the first change of major version since a long time and only the second time it happens in wxWidgets history. So it may be interesting to look at what exactly has changed to warrant this and I'll try to briefly describe it in this post."
Comments (none posted)
Music Applications
Version 1.5 of Amuc has been announced.
"
Amuc is a light-weight tool for composing and playing music. 'Light-weight' in
the sense of not needing graphical or other toolkits. It is very fast and
offers useful features to help the inexperienced composer. Now it also
incorporates a pitch extractor, translating a wave file to notes. Listen to a
fast solo by John Coltrane on saxophone, followed by the extracted tune with
a simple accompaniment, and then with a synthetic bass g[u]itar and sampled drums".
Full Story (comments: none)
Office Suites
KDE.news has an
interview with KOffice developers with some information about KOffice 2 but lots more about ODF support and document standards. "
'We're taking part in the OASIS because we truly believe in Open Standards.
KOffice standardises on OpenDocument. Free Software and open standards are a
perfect match and the way to move forward for a society to ensure
vendor-independent access to its data. We're actively participating in the
OASIS since it matches our value, and we believe that one strong standard is
in the best interest of our users.'"
Comments (none posted)
Web Browsers
The Mozilla
Prism project, which seeks to more closely integrate desktop and web applications, made its first release on 24 October, but only for the Windows platform. The Linux community reacted as one would expect. Mozilla has now
announced the availability of a Linux version. Mac OS X support has been added as well.
Comments (10 posted)
Languages and Tools
C
The November 4, 2007 edition of the GCC 4.3.0 Status Report is
online with the latest Gnu Compiler Collection development news.
"
We're still in Stage 3 for GCC 4.3. As discussed on the GCC mailing
list, once we reach 100 open regressions, we'll enter regressions-only
mode -- but we'll not actually create a branch until we're very close
to making the GCC 4.3.0 release."
Full Story (comments: none)
Caml
The November 6, 2007 edition of the Caml Weekly News
is out with new articles about the Caml language.
Full Story (comments: none)
JSP
Version 3.0 of ZK has been
announced.
"
ZK is Ajax framework enriching Web apps with little programming. With event-driven and markup languages, development is as simple as programming desktops and authoring HTML/XUL pages. ZK supports scripting lang including Java, JavaScript, Ruby, Groovy...
Over 100 new features and 164 bug fixed, server push, ZK layout components, theme support for ZK components, and easier way to realize MVC approach."
Comments (none posted)
Perl
Version 3.00 of Test::Harness has been
announced.
"
It's a complete rewrite of Test::Harness with a more modular architecture that should make it easier to write custom testing tools."
Comments (none posted)
The minutes from the October 31, 2007 Perl 6 Design Meeting have been
published.
"
The Perl 6 design team met on 31 October 2007. Larry, Allison, Jerry, Will, Jesse, and chromatic attended."
Comments (none posted)
PHP
A new
PHP documentation build system
has been announced.
"
The PHP documentation team is pleased to announce the initial release of the new build system that generates the PHP Manual. Written in PHP, PhD ([PH]P based [D]ocBook renderer) builds are now available for viewing at docs.php.net. Everyone is encouraged to test and use this system so that bugs will be found and squashed."
Comments (none posted)
Python
The November 5, 2007 edition of the Python-URL! is online with
a new collection of Python article links.
Full Story (comments: none)
IDEs
ActiveState has announced the launch of Open Komodo.
"
Open Komodo is now open! The open source platform for building
development environments based on Komodo IDE and featuring the
open-sourced code base from Komodo Edit is now available to developers at
http://www.openkomodo.com."
Full Story (comments: none)
Version 1.3.10 of pydev for eclipse has been
announced, it adds a number of new features.
The project is a:
"
Python Development Environment (Python IDE plugin for Eclipse). Features editor, code completion, refactoring, outline view, debugger, and other goodies".
Comments (none posted)
Version Control
Version 1.5.3.5 of the GIT distributed version control system is out.
"
There are many fixes including a handful bugs that led to
segfaults."
Full Story (comments: none)
Page editor: Forrest Cook
Linux in the news
Recommended Reading
Chris Soghoian
worries about Google's funding of Mozilla on News.com. "
This begs the question: why doesn't Firefox adopt the features of AdBlock Plus and CustomizeGoogle? While the terms of Google's contract with Mozilla are not public, even if Mozilla were contractually free to include anti-Google-tracking features, it would not be a wise move, business-wise. After all, it is not too smart to anger the company that provides more than 85 percent of your financing."
Comments (29 posted)
Don Marti
examines an effort by Everex to track Linux installations on
their products.
"
PC vendors haven't been eager to know how many users actually run Linux when it's preloaded on their low-end PCs, and how many of the users replace it with an infringing copy of Microsoft Windows. But Everex, the latest company to introduce a low-priced desktop Linux system, will have the information, thanks to the software update system behind its Linux distribution."
Comments (14 posted)
Trade Shows and Conferences
ars technica
reports from the Ubuntu Developer Summit. "
PolicyKit integration is also another topic that is considered highly relevant for Hardy Heron. PolicyKit is a new framework for secure privilege elevation. When programs currently need to perform operations that require permissions higher than those of a regular user, privileges for the entire program must be elevated—typically with a graphical sudo utility. PolicyKit will instead require developers to isolate functionality that requires higher privileges in individual non-graphical utilities and services that will be accessed by programs through a D-Bus interface."
Comments (11 posted)
Companies
ars technica
has some coverage of the long-rumored gPhone announcement, which is not a phone at all, as has also been rumored. It is, instead, a Linux-based platform for mobile applications. Google also announced the formation of the
Open Handset Alliance. "
Google's handset partners upon launch will include Motorola, HTC, Samsung, and LG, confirming many of the recent rumors that Google would not be developing the hardware on its own. Google has a number of carrier partners worldwide as well, such as T-Mobile and Sprint in the US, T-Mobile/Deutsche Telekom in Europe, and China Mobile in China, to name a few."
Comments (19 posted)
Red Hat joins forces with Sun to produce an open source version of Java Standard Edition (SE). LinuxWorld
covers Red Hat joining the OpenJDK project. "
Red Hat also has licensed the OpenJDK Community Test Compatibility Kit (TCK), which allows Red Hat to build an implementation of OpenJDK and test it to ensure its compatible with the implementation the project itself develops, he said. The Java SE JDK, the basis for OpenJDK, includes the Java Runtime Environment (JRE) as well as tools for developing Java applets and applications; it is the software that is the basis for desktop Java applications."
Comments (1 posted)
Linux at Work
TechNewsWorld
covers the use of Linux in one of the competitors in the recent DARPA robot vehicle competition. "
To build its driverless vehicle for entry into the DARPA Urban Challenge, Axion Racing enlisted the assistance of Linux developer Terra Soft Solutions. Though the vehicle, the Spirit, did not make the final cut for the competition, the project exemplified the soul of open development, the creators said, by borrowing work from the open source community, adding its own improvements, and then giving it back."
Comments (none posted)
Resources
Issue #144 of the
Linux Gazette
has been published. Contents include: Mailbag, Talkback,
NewsBytes, by Howard Dyckoff,
Virtualization made Easy, by Edgar Howell,
3D programming with Vpython, by Maxin B. John,
Slow Receivers in a Distributed Data Management System, by Sudhir Menon,
FlickOff: Escaping the Clutches of Web 2.0, by Ben Okopnik,
Ecol, by Javier Malonda and
The Linux Launderette.
Full Story (comments: none)
Miscellaneous
LinuxWorld
looks
at the process of replacing proprietary code with open source code in
Second Life. "
One of these projects is the Linux version of the
Second Life client, the viewer application that runs on the resident's
computer and lets the resident interact with the graphical environments of
the virtual world. Ever since its release, the Linux client has remained in
constant development by an informal team, usually three people. Their work
could directly benefit the open source and Linux community beyond Second
Life, in the aftermath of the hype."
Comments (6 posted)
Page editor: Forrest Cook
Announcements
Commercial announcements
Bug Labs has announced the BUG
modular consumer electronics platform.
"
BUG is a collection of easy-to-use, open source hardware modules, each capable of producing one or more Web services. These modules snap together physically and the services connect together logically to enable users to easily build, program and share innovative devices and applications. With BUG, we don't define the final products - you do.
BUGbase is the foundation of your BUG device. It's a fully programmable and "hackable" Linux computer, equipped with a fast CPU, 128MB RAM, built-in WiFi, rechargeable battery, USB, Ethernet, and a small LCD with button controls."
Comments (4 posted)
Guardian Digital has launched a redesigned version of SurfSecure, a
Web and Content Filtering Solution.
"
Currently used by organizations from 200 to over 5000 employees, the
technology allows Enterprise organizations to leverage the inherent
benefits of Open Source technology to improve productivity, minimize web threats and reduce
liability in the work place."
Full Story (comments: none)
Mandriva CEO François Bancilhon shows his company's PR skills with
this
open letter to Steve Ballmer over a deal that appears to have gone
wrong. "
And then, today, we hear from the customer a totally
different story: 'we shall pay for the Mandriva Software as agreed, but we
shall replace it by Windows afterward.' Wow! I'm impressed, Steve! What
have you done for these guys to change their mind like this? It's pretty
clear to me, and it will be clear to everyone. How do you call what you
just did Steve, in the place where you live? In my place, they give it
various names, I'm sure you know them. Hey Steve, how do you feel looking
at yourself in the mirror in the morning?" (Thanks to Sam Bailey).
Comments (16 posted)
MontaVista has
announced its acquisition of MontaVista Software Korea Co., Ltd.
"
MontaVista Software, Inc., the leading provider of Linux for intelligent devices and communications infrastructure, announced today that it has purchased a Seoul-based company to meet the growing demand from Korean device manufacturers and software developers for MontaVista embedded Linux software and services. The announcement was made at a press conference in Seoul."
Comments (none posted)
Red Hat has announced that
it will be pursuing Common Criteria certification for the JBoss Enterprise
Application Platform as well as the MetaMatrix Data Services Platform.
"
Created in response to increasing threats to network and computer security,
Common Criteria is an internationally approved set of security standards
used by governments and businesses worldwide. It is designed to bolster
end-user confidence by providing clear and reliable assurance that a
technology's integrity and security architecture have been thoroughly tested
and validated by an accredited, third-party source against the Common
Criteria (CC) Standard for Information Technology Security Evaluation
(ISO/IEC 15408)."
Full Story (comments: none)
Sixth Floor Labs LLC has announced their existence as a Linux game
development company. "
Founded by Ethan Glasser-Camp and Carl Li, the
company aims to improve Linux's desktop feasibility through the creation of
high-quality games. Games are "sold" to the Internet community through the
"ransom model" -- for one large payment, the product is released under the
GPL and freed forever."
Full Story (comments: 25)
EVE Online is available for Linux.
"
CCP, one of the world's largest independent game
developers, and TransGaming Inc., a leading developer of software portability products for the
electronic entertainment industry, today announced the availability of
EVE Online, a leading massively multiplayer online
game (MMOG), on the Macintosh and Linux platforms. With this release,
EVE Online is now available on the most widely used
operating systems - Microsoft Windows, Macintosh and Linux."
Full Story (comments: none)
Vertica Systems has
announced a partnership with HP and Red Hat.
"
Vertica Systems has teamed with
HP and Red Hat to deliver a breakthrough software/hardware bundle for
managing analytic data marts -- faster and more economically than has been
done with earlier generation appliances based on proprietary hardware. The
solution opens new analytical possibilities for companies of any size that
have large, fast-growing data stores of critical business information such
as call detail records (CDRs), stock quotes, customer service history,
clickstream logs, radio frequency identification (RFID) and more.
The solution includes the HP BladeSystem c3000, Red Hat Enterprise
Linux, and the column-oriented Vertica(R) Database and will be configured
and delivered through HP channel partners."
Comments (none posted)
New Books
Rocky Nook has published the book
The HDRI Handbook, High Dynamic Range Imaging for Photographers and CG Artists by
Christian Bloch.
Full Story (comments: none)
Packt Publishing has published the book
Zimbra: Implement, Administer and Manage by Marty Resnick and David Touitou.
Full Story (comments: none)
Resources
The November 7, 2007 edition of the FSFE Newsletter is online
with the latest Free Software Foundation Europe news.
Topics include:
European Commission vs. Microsoft decennial battle is over,
FSFE at Free Software information event in Austrian school,
FSFE's German deputy coordinator discusses Sustainable-IT in Berlin,
Sun donates T1000 server to FSFE,
Fellows plan the future of the Fellowship portal,
FSFE's European Legal and Techincal Networks grow and
Brussels meetings and Free Software awareness.
Full Story (comments: none)
Education and Certification
LinuxBasics.org has announced their second free Linux class,
An Introduction to Linux Basics, which takes place on November 8.
"
This course is designed to give a foundation of understanding of Linux
to a beginner who wants to know a little more about the system. More
advanced Linux users will find an opportunity to dig deeper into some
areas they always wanted to know more about or discover gaps in their
knowledge that they didn't know existed."
Full Story (comments: none)
LinuxCertified has
announced
a Linux Device Driver Development course.
"
LinuxCertified Inc, a leading provider of Linux training and services, today announced its next Linux Device Driver Development Course class to be held in South Bay, CA from November 12th to November 14th."
Comments (none posted)
The Linux Professional Institute (LPI) has announced the formation of a new
regional affiliate, LPI-Central Europe, which will be responsible for
promoting Linux professionalism in the nations of Austria, Belgium,
Germany, Luxembourg, the Netherlands and Switzerland. The new affiliate is
the result of extensive development efforts by Open Source Certification
GmbH, the management team of former LPI affiliate LPI-German.
Full Story (comments: none)
LinuxMedNews has published a
press release for a WorldVistA conference.
"
The not-for-profit Harris County Health Information Cooperative (HCHIC) is sponsoring an intensive, vendor-neutral Educational Conference: "Introduction to WorldVistA EHR System Administration". This three day weekend education event December 7th-9th, 2007 will be held in Houston, Texas."
Comments (none posted)
Calls for Presentations
A Call for Presentations has gone out for the LCA Multimedia miniconf.
The event takes place on January 28, 2008 in Melbourne, Australia.
Submissions are due by November 30.
Full Story (comments: none)
A Call for Presentations has gone out for GNOME.conf.au.
The event takes place from January 28 to February 2, 2008 in Melbourne,
Australia.
"
This year, we're going to focus on a single, action-packed day of short
sessions, from 5 minute lightning talks to 25 minute presentations. Please
submit a session proposal if you'd like to contribute to GNOME.conf.au's
unique blend of pure awesome and rock'n'roll."
Full Story (comments: none)
LinuxMedNews has
announced
a call for paper for DOHCS at SCALE.
"
This is just a reminder that the second annual Demonstrating Open Source Healthcare Solutions conference (DOHCS) is taking place at SCALE 2008 again in Los Angeles, February 8th. Pre-registration for attendees is now available so please help us publicize the event, https://www.socallinuxexpo.org/reg6/. We would love to have a talk proposal submitted by a wide variety of contributors on a diverse set of topics. Note that this year we are offering both a technical and a business oriented tract. The deadline for submissions is November 30th and there is not a lot of room left for speakers so please don't wait until the last minute."
Comments (none posted)
Upcoming Events
The Eclipse Foundation has
announced the keynote speakers for EclipseCon 2008. The event will take
place on March 17-20, 2008 at the Santa Clara, CA Convention Center.
"
The keynote presentations for EclipseCon 2008 will feature well known
industry speakers including Cory Doctorow, science fiction author and open
source advocate; Dan Lyons, also known as the Fake Steve Jobs; and Sam
Ramji, Director at Microsoft Open Source Labs."
Comments (none posted)
OpenOffice.org will be present at the FOSS.IN conference.
"
The OpenOffice.org presence in India is large and growing. Millions
use it there, in numerous languages. This December, as part of the
internationally renown foss.in conference held annually in Bangalore,
OpenOffice.org will have its first Project Day: a day devoted to talks
and workshops on OpenOffice.org, its code, architecture, community,
extensions, future. You are invited.
With members from the local community presenting on issues pertinent
to India and with speakers flying in from Germany and Canada, the
OpenOffice.org Project Day gives all Indian community members the
opportunity not just to learn but to speak their own voice directly to
the project leads."
Full Story (comments: none)
The Sixth Annual So Cal Linux Expo will take place in Los Angeles, CA
on February 8-10, 2008.
"
A few of the speakers and their topics are:
Akkana Peck. author of "Beginning GIMP: From Novice to Professional"
will speak on "GIMP Demystified"; Jason Dixon of the OpenBSD Project
will discuss high availability and fail-over in OpenBSD; Sven Oehme of
IBM will speak on how to "Scale Out File Services using Samba and a
Clustered Filesystem"; and Stormy Peters of OpenLogic will discuss the
motivations behind coding for Open Source Software in her talk "Would
you do it again for free?""
Full Story (comments: none)
Events: November 15, 2007 to January 14, 2008
The following event listing is taken from the
LWN.net Calendar.
| Date(s) | Event | Location |
November 11 November 17 |
Large Installation System Administration Conference |
Dallas, TX, USA |
November 12 November 16 |
Ruby on Rails Bootcamp with Charles B. Quinn |
Atlanta, USA |
November 12 November 15 |
OWASP & WASC AppSec 2007 Conference |
San Jose, USA |
November 12 November 16 |
ApacheCon US 2007 |
Atlanta, GA, USA |
November 15 November 18 |
Piksel07 |
Bergen, Norway |
| November 15 |
Alfresco European Community Conference |
Paris, France |
November 16 November 18 |
aKademy-es 2007 |
Zaragoza, Spain |
November 20 November 23 |
DeepSec ISDC 2007 |
Vienna, Austria |
November 22 November 23 |
Conferencia Rails Hispana |
Madrid, Spain |
| November 24 |
LinuxDay in Vorarlberg (Deutschland, Schweiz, Liechtenstein und Ă–sterreich) |
Dornbirn, Austria |
November 26 November 29 |
Open Source Developers' Conference |
Brisbane, Australia |
November 28 November 30 |
Mono Summit 2007 |
Madrid, Spain |
November 29 November 30 |
PacSec 2007 |
Tokyo, Japan |
| December 1 |
Django Worldwide Sprint |
Online, World |
| December 1 |
London Perl Workshop 2007 |
London, UK |
December 4 December 8 |
FOSS.IN 2007 |
Bangalore, India |
December 7 December 8 |
Free Software Conference Scandinavia |
Gotherburg, Sweden |
December 7 December 8 |
PGCon Brazil |
Sao Paulo, Brazil |
| December 10 |
Paris on Rails (2nd Edition) |
Paris, France |
December 11 December 12 |
3rd DoD Open Conference: Deployment of Open Technologies and Architectures within Military Systems |
Vienna, VA, USA |
December 15 December 22 |
Unix Meeting 2007 |
IRC, Worldwide |
December 27 December 30 |
24th Chaos Communication Congress |
Berlin, Germany |
| December 31 |
Israeli Perl Workshop |
Ramat Efal, Israel |
January 11 January 13 |
FUDCon Raleigh 2008 |
Raleigh, NC, USA |
If your event does not appear here, please
tell us about it.
Page editor: Forrest Cook