We are pleased to announce GNU Guile release 2.0.13, the next maintenance
release for the 2.0.x stable series, containing important security fixes.
This release contains 44 commits by 11 people over 4 months.

Guile is an implementation of the Scheme programming language.  It is
designed to help programmers create flexible applications that can be
extended by users or other programmers with plug-ins, modules, or
scripts.  With Guile you can create applications and games for the
desktop, the Web, the command-line, and more.

See https://gnu.org/software/guile/ for more information.

In parallel the Guile development team has been hard at work on the next
stable series, which we hope will see a stable release within the next
couple months.  Inquisitive users should see the recent 2.1.4 release
notes at
https://lists.gnu.org/archive/html/guile-user/2016-09/msg00042.html for
a preview of our future stable series.


Here are the compressed sources:
  ftp://ftp.gnu.org/gnu/guile/guile-2.0.13.tar.gz   (7.5MB)
  ftp://ftp.gnu.org/gnu/guile/guile-2.0.13.tar.lz   (4.2MB)
  ftp://ftp.gnu.org/gnu/guile/guile-2.0.13.tar.xz   (4.6MB)

Here are the GPG detached signatures[*]:

Use a mirror for higher download bandwidth:

Here are the MD5 and SHA1 checksums:

dac267e76330176d48583258aeaa7016  guile-2.0.13.tar.gz
b71b9e9b7356b139f3e73fef8f15ac7c  guile-2.0.13.tar.lz
d50bbb19672b72aa1e1c96e8f024bf00  guile-2.0.13.tar.xz
efd3f9769d04b51803ea4ebcbfd7b6add1d419e6  guile-2.0.13.tar.gz
829bf94d8cca95d3a6dc0a898567da06c623a036  guile-2.0.13.tar.lz
627f7b5004f01b7e2c074e03fff3eda235c0d9ab  guile-2.0.13.tar.xz

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify guile-2.0.13.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver pgp.mit.edu --recv-keys 

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.69
  Automake 1.15
  Libtool 2.4.6
  Makeinfo 6.3
  Gnulib v0.1-800-g68b6ade


Changes in 2.0.13 (since 2.0.12):

* Security fixes

** CVE-2016-8606: REPL server now protects against HTTP inter-protocol

Guile 2.x provides a "REPL server" started by the '--listen'
command-line option or equivalent API (see "REPL Servers" in the

The REPL server is vulnerable to the HTTP inter-protocol attack as
described at
<https://en.wikipedia.org/wiki/Inter-protocol_exploitation>, notably the
HTML form protocol attack described at
<https://www.jochentopf.com/hfpa/hfpa.pdf>.  A "DNS rebinding attack"
can be combined with this attack and allow an attacker to send arbitrary
Guile code to the REPL server through web pages accessed by the
developer, even though the REPL server is listening to a loopback device
("localhost").  This was demonstrated in an article entitled "How to
steal any developer's local database" available at

The REPL server in Guile 2.0.13 now detects attempts to exploit this
vulnerability.  It immediately closes the connection when it receives a
line that looks like an HTTP request.

Nevertheless, we recommend binding the REPL server to a Unix-domain
socket, for instance by running:

  guile --listen=/tmp/guile-socket

** CVE-2016-8605: 'mkdir' procedure no longer calls umask(2)

When the second argument to the 'mkdir' procedure was omitted, it would
call umask(0) followed by umask(previous_umask) and apply the umask to
mode #o777.

This was unnecessary and a security issue for multi-threaded
applications: during a small window the process' umask was set to zero,
so other threads calling mkdir(2) or open(2) could end up creating
world-readable/writable/executable directories or files.

* New interfaces

** mkstemp! takes optional "mode" argument

See "File System" in the manual, for more.

** New 'scm_to_uintptr_t' and 'scm_from_uintptr_t' C functions

* Bug fixes

** Fix optimizer bug when compiling fixpoint operator
** Fix build error on MinGW
** Update 'uname' implementation on MinGW
** 'port-encoding' and 'set-port-encoding!' ensure they are passed an
   open port
** (system base target) now recognizes Alpha as a cross-compilation target


You can follow Guile development in the Git repository and on the Guile
mailing lists.  Note that Guile builds from the 'master' branch of Git
have version number 2.1.x; the stable release series can be had from

Guile versions with an odd middle number, e.g., 2.1.*, are unstable
development versions.  Even middle numbers indicate stable versions.
This has been the case since the 1.3.* series.

Please report bugs to bug-gu...@gnu.org.  We also welcome reports of
successful builds, which can be sent to the same email address.

Happy hacking with Guile!

Ludovic, on behalf of the Guile team.

Attachment: signature.asc
Description: PGP signature

Reply via email to