Skip to content

Commit 9c736c4

Browse files
committed
Add documentation about WebKitGTK and WPE WebKit security process
1 parent c306dbe commit 9c736c4

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed
+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# WebKitGTK and WPE WebKit Security Updates
2+
3+
4+
## Clarification about WebKit ports, releases and security updates
5+
6+
WebKit is an umbrella open source project where different `ports` collaborate on a common codebase.
7+
In this sense, the WebKit project itself doesn't have regular releases or does security advisories.
8+
9+
Each port is responsible for doing their own releases and security advisories.
10+
11+
For example:
12+
13+
* Apple maintains the WebKit ports for MacOS and iOS
14+
* Sony maintains the WebKit port for PlayStation
15+
* [Igalia](https://www.igalia.com) maintains the two currently active ports of WebKit for Linux: WebKitGTK and WPE WebKit.
16+
17+
So the documentation below **only** applies to the [WebKitGTK](https://webkitgtk.org) and [WPE WebKit](https://wpewebkit.org) ports.
18+
19+
## Overview of the WebKitGTK and WPE WebKit release process
20+
21+
WebKitGTK and WPE WebKit follow a 6-month development cycle and the releases for both ports are usually synced.
22+
23+
This is an overview of what the number of the release versions mean:
24+
25+
* Version numbers follow the `major.minor.patch` numbering scheme.
26+
* Changes to the `major` version signify considerable architectural or `API` changes and rarely changes
27+
* The `minor` version number changes throughout the development cycle and is possible to identify if a release is stable or not by looking at this number
28+
* An **even** `minor` version number means the release is stable and ready for production.
29+
* An **odd** `minor` version number means the release is a development (beta) release for testing or for pre-view of new features.
30+
* The `patch` number is incremented for each bug-fix release and doesn't mean anything other than an incremental number.
31+
32+
There are two feature stable releases done every year (`minor` number is increased to an even number), typically in March and September.
33+
Within feature stable releases, there may be any number of bug-fix releases (`patch` number is increased).
34+
35+
For more details about the release process and versioning schema please check:
36+
37+
* [WPE WebKit release schedule](https://wpewebkit.org/release/schedule/)
38+
* [WebKitGTK release schedule](https://trac.webkit.org/wiki/WebKitGTK/StableRelease)
39+
40+
41+
## WebKitGTK and WPE WebKit security updates
42+
43+
Developers actively backport security fixes from the WebKit `main` development branch into the last stable release.
44+
45+
Any stable release may contain security fixes. The concept of "stable release" is any release where the `minor` number is an **even number**.
46+
Developers periodically release security advisories detailing which security issues have been found and which releases were affected.
47+
Developers issue this security advisories as soon as they are aware of the problem and after doing a new stable release fixing the problem.
48+
49+
Developers don't backport security fixes for older stable releases. **Security updates are only done for the last stable release: that is, the last release with a `minor` even number**.
50+
The `patch` number can be an odd or even number, in the case of the `patch` number it doesn't mean anything other than an incremental number.
51+
52+
For more information about the **security advisories** check:
53+
54+
* [WebKitGTK Security Advisories](https://webkitgtk.org/security.html)
55+
* [WPE WebKit Security Advisories](https://wpewebkit.org/security)
56+
57+
## Recommended practices
58+
59+
These are the recommended practices for users that would like to incorporate security and privacy updates from WebKit into their app in a timely manner:
60+
61+
* **Use always the last stable version** of WebKitGTK or WPE WebKit.
62+
* Even if a specific stable release doesn't mention that it contains a security fix it is still a very good idea to update.
63+
* Stable releases may fix dangerous crashes or issues that may be not tagged as a security issue at the moment of the release.
64+
* Updating to the latest stable versions of WebKitGTK and WPE WebKit is always recommended: it is the best way of ensuring of running a safe version of WebKit.
65+
66+
* **Subscribe to the mailing lists** to get notifications about new releases and security advisories
67+
* Security advisories are sent to the port mailing list, so it is recommended to subscribe to it:
68+
* [WebKitGTK mailing list](https://lists.webkit.org/mailman/listinfo/webkit-gtk)
69+
* [WPE WebKit mailing list](https://lists.webkit.org/mailman/listinfo/webkit-wpe)
70+
71+
* **Verify the tarballs** of the releases
72+
* The release tarballs include checksums and are also signed with `PGP` (or `GPG`) signatures.
73+
* After downloading the release it is recommended to check the checksums or verify the `PGP` signature.
74+
* If possible, verifying the `PGP` signature is the best way to ensure your download was not compromised.
75+
* Check:
76+
* [Verifying WebKitGTK releases](https://webkitgtk.org/verifying.html)
77+
* [Verifying WPE WebKit releases](https://wpewebkit.org/release/verify)
78+
79+
80+
## Considerations when applying the security updates
81+
82+
Some considerations to take into acocunt when applying the security update:
83+
84+
* The WebKitGTK and WPE WebKit `API` aims to be compatible between `minor` versions, so if the application was using an older `minor` version of WebKitGTK or WPE WebKit it should also run with the newer version of WebKitGTK or WPE WebKit without issues (recompiling the application may not be needed if it uses dynamic linking).
85+
* The major version rarely changes, but if it does then it may be need to check if the application code still builds and works fine with the new major version. In that case there should be a guide explaining how to port the code of the application.

0 commit comments

Comments
 (0)