2 Native Client Release 0.1
5 This file documents issues known at the time of the release, with an
6 emphasis on security-related issues (and possibly some neglected
7 robustness or functionality issues). Please
8 see http://code.google.com/p/nativeclient/wiki/ReleaseNotes for
9 the most recent information. See README.html in this directory
10 for an introduction to Native Client. Please refer to
11 nacl/googleclient/VERSION for the full version/release number of
14 CHANGES SINCE THE PREVIOUS RELEASE
16 See the CURRENT VERSION CHANGES section at the bottom of this file.
18 BROWSER SUPPORT LIMITATIONS
20 Native Client supports Firefox 3 on Linux, Windows and MacOS, and
21 Chrome, Safari and Opera on Windows.
23 Support for the following browsers is not available at this time:
27 These browsers are partially supported:
28 * Camino on MacOS appears to work but has had minimal testing
29 * Firefox 2 on MacOS: We STRONGLY encourage Mac users to upgrade
30 their Firefox version to 3 for Native Client. On Firefox 2,
31 control, command and alt keys are not enabled due to
32 an eavesdropping vulnerability. Note the control key is used
33 for firing weapons in Quake.
35 OPERATING SYSTEM SUPPORT LIMITATIONS
37 Native Client does not work on 64-bit versions of Windows Vista.
38 Native Client will silently fail on these systems, without running
39 untrusted code. 64-bit Vista lacks the system call required to set
40 up protected memory segments. We believe it to work on 32-bit Vista
41 and all versions of Windows XP.
43 LIMITED VIRTUAL MACHINE SUPPORT
45 Some virtual machines do not implement the CPUID instruction
46 correctly. As a result, the Native Client sandbox can be defeated via
47 an instruction decoder desynchronization attack on certain VMs. We
48 believe VMWare works properly. The following VMs are known to have
49 exploitable CPUID implementation defects:
54 NPAPI SUPPORT IS PRELIMINARY
56 NPAPI was designed (and prior to Native Client *was*) only for trusted
57 code. As such, we think it is possible there are many exploitable
58 security problems with the NPAPI API itself and with its current
59 implementations. Our focus to date for NPAPI has been on functionality
60 rather than security. We will probably be revising our NPAPI
61 implementation to make it much more restrictive, and considering
62 variation between various browser implementations of NPAPI.
64 OUTER SANDBOX NOT INCLUDED IN THIS RELEASE
66 Our outer sandbox implementations are not sufficiently stable yet to
67 be worthy of sharing at this time. Stay tuned!
69 NO "FRIENDLY" INSTALLERS
71 Our goal in releasing Native Client at this time is to get feedback
72 from the security and research community to help us make the system
73 better, and not to get a large number of users. As such, we don't
74 provide a consumer-oriented install. Our current installer is
75 implemented as a part of our build system.
79 The browser supports only NACL_VIDEO_FORMAT_BGRA. If you try to use
80 another format (RGB or RGBA), it'll work when the Native Client
81 module is run from the command line with sel_ldr, but not within
84 Only one nacl_av video area is supported. Creating a page featuring
85 more than one video area, or having multiple pages open at a time, is
90 XaoS builds only on Linux at this time. Quake requires downloading
91 source from www.libsdl.org, but should build on all three platforms.
92 Neither is provided pre-built, due to GPL license considerations.
93 We hope to streamline these builds in a future release.
95 DOXYGEN REQUIRED TO BUILD DOCUMENTATION
97 If you discover the MODE=all option to our scons build, and you
98 don't have doxygen installed, you will not be able to build.
100 CURRENT VERSION CHANGES
102 The December 18 release contains the following changes:
104 - Addressed flicker on Windows that happened when the user resizes the browser.
105 - Changed the IMC library to close the connection channel immediately
106 once the remote peer has closed the connection. Also changed to avoid
107 performing sendmsg on a closed socket.
108 - Improved canonical origin names, recognizing the equivalence of
109 file://localhost and file://, and forcing DNS names to lower case before
111 - Added some stub library routines to make porting applications easier.
112 - Addressed external issue #23: disallow call/jump indirections as in:
114 Clarified the comment for cld/std in ncdecode_table.c
115 - Addressed the LDT synchronization issue that caused exceptions on thread
116 switch "pop gs" instructions, and fixed a MacOS/X LDT allocation problem.
117 - Made the thread API more POSIX-compatible. Addresses issue 24 on the external
119 - Changed mmap to ignore the MAP_SHARED option. Now the region is always mapped
121 - Added doxygen comments to pthread and NPAPI bridge libraries.
122 - Addressed a potential defect in video shared memory ring buffer.
123 - Addressed typo in error message; issue 13 on code.google.com/p/nativeclient.
124 - Changed the SRPC library to pass a channel descriptor to methods. Also
125 improved name consistency in the SRPC APIs.