summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2021-12-15 04:34:02 +0000
committerEric Hameleers <alien@slackware.com>2021-12-15 08:59:46 +0100
commitdd0455444d191783d5e025a25efa293a0f6272bb (patch)
treefd858afc4202f46366ac48a4879197faf79df299 /source
parentb88e2bb09498e9b75508b99af4e497cdf3dd4416 (diff)
downloadcurrent-dd0455444d191783d5e025a25efa293a0f6272bb.tar.gz
Wed Dec 15 04:34:02 UTC 202120211215043402
a/dialog-1.3_20211214-x86_64-1.txz: Upgraded. a/kernel-generic-5.15.8-x86_64-1.txz: Upgraded. a/kernel-huge-5.15.8-x86_64-1.txz: Upgraded. a/kernel-modules-5.15.8-x86_64-1.txz: Upgraded. a/sysvinit-3.01-x86_64-1.txz: Upgraded. d/kernel-headers-5.15.8-x86-1.txz: Upgraded. d/patchelf-0.14.3-x86_64-1.txz: Upgraded. k/kernel-source-5.15.8-noarch-1.txz: Upgraded. l/oniguruma-6.9.7.1-x86_64-1.txz: Upgraded. l/pipewire-0.3.41-x86_64-1.txz: Upgraded. x/libinput-1.19.3-x86_64-1.txz: Upgraded. x/xorg-server-1.20.13-x86_64-2.txz: Rebuilt. Fixes for multiple input validation failures in X server extensions: render: Fix out of bounds access in SProcRenderCompositeGlyphs() xfixes: Fix out of bounds access in *ProcXFixesCreatePointerBarrier() Xext: Fix out of bounds access in SProcScreenSaverSuspend() record: Fix out of bounds access in SwapCreateRegister() For more information, see: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-4008 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-4009 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-4010 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-4011 (* Security fix *) x/xorg-server-xephyr-1.20.13-x86_64-2.txz: Rebuilt. x/xorg-server-xnest-1.20.13-x86_64-2.txz: Rebuilt. x/xorg-server-xvfb-1.20.13-x86_64-2.txz: Rebuilt. x/xorg-server-xwayland-21.1.4-x86_64-1.txz: Upgraded. Fixes for multiple input validation failures in X server extensions: render: Fix out of bounds access in SProcRenderCompositeGlyphs() xfixes: Fix out of bounds access in *ProcXFixesCreatePointerBarrier() Xext: Fix out of bounds access in SProcScreenSaverSuspend() record: Fix out of bounds access in SwapCreateRegister() For more information, see: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-4008 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-4009 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-4010 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-4011 (* Security fix *) xap/xsnow-3.4.1-x86_64-1.txz: Upgraded. isolinux/initrd.img: Rebuilt. kernels/*: Upgraded. usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source')
-rwxr-xr-xsource/a/sysvinit/sysvinit.SlackBuild3
-rw-r--r--source/a/sysvinit/sysvinit.always.define.version.diff6
-rw-r--r--source/a/sysvinit/sysvinit.wrong.version.in.init.c.again.diff11
-rw-r--r--source/d/rust/rust.url2
-rw-r--r--source/k/kernel-configs/config-generic-5.15.8 (renamed from source/k/kernel-configs/config-generic-5.15.7)2
-rw-r--r--source/k/kernel-configs/config-generic-5.15.8.x64 (renamed from source/k/kernel-configs/config-generic-5.15.7.x64)2
-rw-r--r--source/k/kernel-configs/config-generic-smp-5.15.8-smp (renamed from source/k/kernel-configs/config-generic-smp-5.15.7-smp)2
-rw-r--r--source/k/kernel-configs/config-huge-5.15.8 (renamed from source/k/kernel-configs/config-huge-5.15.7)2
-rw-r--r--source/k/kernel-configs/config-huge-5.15.8.x64 (renamed from source/k/kernel-configs/config-huge-5.15.7.x64)2
-rw-r--r--source/k/kernel-configs/config-huge-smp-5.15.8-smp (renamed from source/k/kernel-configs/config-huge-smp-5.15.7-smp)2
-rw-r--r--source/x/x11/build/xorg-server2
-rw-r--r--source/x/x11/patch/xorg-server.patch6
-rw-r--r--source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4008.ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60.patch52
-rw-r--r--source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4009.b5196750099ae6ae582e1f46bd0a6dad29550e02.patch43
-rw-r--r--source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4010.6c4c53010772e3cb4cb8acd54950c8eec9c00d21.patch32
-rw-r--r--source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4011.e56f61c79fc3cee26d83cda0f84ae56d5979f768.patch33
-rw-r--r--source/xap/xine-ui/xine-ui.url1
17 files changed, 178 insertions, 25 deletions
diff --git a/source/a/sysvinit/sysvinit.SlackBuild b/source/a/sysvinit/sysvinit.SlackBuild
index 1f382d2f..26d8ffe2 100755
--- a/source/a/sysvinit/sysvinit.SlackBuild
+++ b/source/a/sysvinit/sysvinit.SlackBuild
@@ -68,9 +68,6 @@ zcat $CWD/sysvinit.paths.diff.gz | patch -p1 -E --verbose --backup --suffix=.ori
# Fix failure to show program version:
zcat $CWD/sysvinit.always.define.version.diff.gz | patch -p1 --verbose || exit 1
-# This seems to be a recurring theme:
-zcat $CWD/sysvinit.wrong.version.in.init.c.again.diff.gz | patch -p1 --verbose || exit 1
-
# Use /dev/initctl instead of /run/initctl ; this is a named pipe and probably
# should be in /dev anyway, but more importantly, having the upgraded package
# expect it in /run breaks shutdown/reboot without manual intervention:
diff --git a/source/a/sysvinit/sysvinit.always.define.version.diff b/source/a/sysvinit/sysvinit.always.define.version.diff
index aadac9f0..68f1ba5c 100644
--- a/source/a/sysvinit/sysvinit.always.define.version.diff
+++ b/source/a/sysvinit/sysvinit.always.define.version.diff
@@ -1,11 +1,11 @@
---- ./src/init.c.orig 2019-02-24 17:26:33.000000000 -0600
-+++ ./src/init.c 2019-03-01 14:07:19.842729825 -0600
+--- ./src/init.c.orig 2021-12-13 13:21:26.000000000 -0600
++++ ./src/init.c 2021-12-14 15:04:45.163064496 -0600
@@ -12,9 +12,7 @@
/*
Version information is not placed in the top-level Makefile by default
*/
-#ifndef VERSION
- #define VERSION "2.94"
+ #define VERSION "3.01"
-#endif
/*
* This file is part of the sysvinit suite,
diff --git a/source/a/sysvinit/sysvinit.wrong.version.in.init.c.again.diff b/source/a/sysvinit/sysvinit.wrong.version.in.init.c.again.diff
deleted file mode 100644
index 18412081..00000000
--- a/source/a/sysvinit/sysvinit.wrong.version.in.init.c.again.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./src/init.c.orig 2019-06-16 22:06:19.677002897 -0500
-+++ ./src/init.c 2019-06-16 22:07:43.515002900 -0500
-@@ -12,7 +12,7 @@
- /*
- Version information is not placed in the top-level Makefile by default
- */
--#define VERSION "2.94"
-+#define VERSION "3.00"
- /*
- * This file is part of the sysvinit suite,
- * Copyright (C) 1991-2004 Miquel van Smoorenburg.
diff --git a/source/d/rust/rust.url b/source/d/rust/rust.url
index e4ea90ef..7f5173fc 100644
--- a/source/d/rust/rust.url
+++ b/source/d/rust/rust.url
@@ -22,7 +22,7 @@ exit 0
BOOTSTRAP_DATE=2021-11-01
BOOTSTRAP_CARGO=1.56.1
-BOOTSTRAP_VERSION=1.56.0
+BOOTSTRAP_VERSION=1.56.1
# i686 bootstrap:
lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/cargo-${BOOTSTRAP_CARGO}-i686-unknown-linux-gnu.tar.xz
diff --git a/source/k/kernel-configs/config-generic-5.15.7 b/source/k/kernel-configs/config-generic-5.15.8
index a3d35714..d26f4d8a 100644
--- a/source/k/kernel-configs/config-generic-5.15.7
+++ b/source/k/kernel-configs/config-generic-5.15.8
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.15.7 Kernel Configuration
+# Linux/x86 5.15.8 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
diff --git a/source/k/kernel-configs/config-generic-5.15.7.x64 b/source/k/kernel-configs/config-generic-5.15.8.x64
index ca145830..4b416d19 100644
--- a/source/k/kernel-configs/config-generic-5.15.7.x64
+++ b/source/k/kernel-configs/config-generic-5.15.8.x64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.15.7 Kernel Configuration
+# Linux/x86 5.15.8 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
diff --git a/source/k/kernel-configs/config-generic-smp-5.15.7-smp b/source/k/kernel-configs/config-generic-smp-5.15.8-smp
index 1c3f0519..763616e6 100644
--- a/source/k/kernel-configs/config-generic-smp-5.15.7-smp
+++ b/source/k/kernel-configs/config-generic-smp-5.15.8-smp
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.15.7 Kernel Configuration
+# Linux/x86 5.15.8 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
diff --git a/source/k/kernel-configs/config-huge-5.15.7 b/source/k/kernel-configs/config-huge-5.15.8
index 78eda8d9..284d988e 100644
--- a/source/k/kernel-configs/config-huge-5.15.7
+++ b/source/k/kernel-configs/config-huge-5.15.8
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.15.7 Kernel Configuration
+# Linux/x86 5.15.8 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
diff --git a/source/k/kernel-configs/config-huge-5.15.7.x64 b/source/k/kernel-configs/config-huge-5.15.8.x64
index f7f72b37..a93e295e 100644
--- a/source/k/kernel-configs/config-huge-5.15.7.x64
+++ b/source/k/kernel-configs/config-huge-5.15.8.x64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.15.7 Kernel Configuration
+# Linux/x86 5.15.8 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
diff --git a/source/k/kernel-configs/config-huge-smp-5.15.7-smp b/source/k/kernel-configs/config-huge-smp-5.15.8-smp
index 2077878d..5a7ee312 100644
--- a/source/k/kernel-configs/config-huge-smp-5.15.7-smp
+++ b/source/k/kernel-configs/config-huge-smp-5.15.8-smp
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.15.7 Kernel Configuration
+# Linux/x86 5.15.8 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
diff --git a/source/x/x11/build/xorg-server b/source/x/x11/build/xorg-server
index d00491fd..0cfbf088 100644
--- a/source/x/x11/build/xorg-server
+++ b/source/x/x11/build/xorg-server
@@ -1 +1 @@
-1
+2
diff --git a/source/x/x11/patch/xorg-server.patch b/source/x/x11/patch/xorg-server.patch
index e1e5d20f..72b8e30a 100644
--- a/source/x/x11/patch/xorg-server.patch
+++ b/source/x/x11/patch/xorg-server.patch
@@ -28,3 +28,9 @@ zcat $CWD/patch/xorg-server/fix-pci-segfault.diff.gz | patch -p1 --verbose || {
# Only use Intel DDX with pre-gen4 hardware. Newer hardware will the the modesetting driver by default:
zcat $CWD/patch/xorg-server/06_use-intel-only-on-pre-gen4.diff.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# Security fixes:
+zcat $CWD/patch/xorg-server/xorg-server.CVE-2021-4008.ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+zcat $CWD/patch/xorg-server/xorg-server.CVE-2021-4009.b5196750099ae6ae582e1f46bd0a6dad29550e02.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+zcat $CWD/patch/xorg-server/xorg-server.CVE-2021-4010.6c4c53010772e3cb4cb8acd54950c8eec9c00d21.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+zcat $CWD/patch/xorg-server/xorg-server.CVE-2021-4011.e56f61c79fc3cee26d83cda0f84ae56d5979f768.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4008.ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60.patch b/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4008.ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60.patch
new file mode 100644
index 00000000..e13edff7
--- /dev/null
+++ b/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4008.ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60.patch
@@ -0,0 +1,52 @@
+From ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60 Mon Sep 17 00:00:00 2001
+From: Povilas Kanapickas <povilas@radix.lt>
+Date: Tue, 14 Dec 2021 15:00:03 +0200
+Subject: [PATCH] render: Fix out of bounds access in
+ SProcRenderCompositeGlyphs()
+
+ZDI-CAN-14192, CVE-2021-4008
+
+This vulnerability was discovered and the fix was suggested by:
+Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
+
+Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
+---
+ render/render.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/render/render.c b/render/render.c
+index c376090ca..456f156d4 100644
+--- a/render/render.c
++++ b/render/render.c
+@@ -2309,6 +2309,9 @@ SProcRenderCompositeGlyphs(ClientPtr client)
+
+ i = elt->len;
+ if (i == 0xff) {
++ if (buffer + 4 > end) {
++ return BadLength;
++ }
+ swapl((int *) buffer);
+ buffer += 4;
+ }
+@@ -2319,12 +2322,18 @@ SProcRenderCompositeGlyphs(ClientPtr client)
+ buffer += i;
+ break;
+ case 2:
++ if (buffer + i * 2 > end) {
++ return BadLength;
++ }
+ while (i--) {
+ swaps((short *) buffer);
+ buffer += 2;
+ }
+ break;
+ case 4:
++ if (buffer + i * 4 > end) {
++ return BadLength;
++ }
+ while (i--) {
+ swapl((int *) buffer);
+ buffer += 4;
+--
+GitLab
+
diff --git a/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4009.b5196750099ae6ae582e1f46bd0a6dad29550e02.patch b/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4009.b5196750099ae6ae582e1f46bd0a6dad29550e02.patch
new file mode 100644
index 00000000..9a5c3feb
--- /dev/null
+++ b/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4009.b5196750099ae6ae582e1f46bd0a6dad29550e02.patch
@@ -0,0 +1,43 @@
+From b5196750099ae6ae582e1f46bd0a6dad29550e02 Mon Sep 17 00:00:00 2001
+From: Povilas Kanapickas <povilas@radix.lt>
+Date: Tue, 14 Dec 2021 15:00:01 +0200
+Subject: [PATCH] xfixes: Fix out of bounds access in
+ *ProcXFixesCreatePointerBarrier()
+
+ZDI-CAN-14950, CVE-2021-4009
+
+This vulnerability was discovered and the fix was suggested by:
+Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
+
+Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
+---
+ xfixes/cursor.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/xfixes/cursor.c b/xfixes/cursor.c
+index 60580b88f..c5d4554b2 100644
+--- a/xfixes/cursor.c
++++ b/xfixes/cursor.c
+@@ -1010,7 +1010,8 @@ ProcXFixesCreatePointerBarrier(ClientPtr client)
+ {
+ REQUEST(xXFixesCreatePointerBarrierReq);
+
+- REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, pad_to_int32(stuff->num_devices));
++ REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq,
++ pad_to_int32(stuff->num_devices * sizeof(CARD16)));
+ LEGAL_NEW_RESOURCE(stuff->barrier, client);
+
+ return XICreatePointerBarrier(client, stuff);
+@@ -1027,7 +1028,8 @@ SProcXFixesCreatePointerBarrier(ClientPtr client)
+
+ swaps(&stuff->length);
+ swaps(&stuff->num_devices);
+- REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, pad_to_int32(stuff->num_devices));
++ REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq,
++ pad_to_int32(stuff->num_devices * sizeof(CARD16)));
+
+ swapl(&stuff->barrier);
+ swapl(&stuff->window);
+--
+GitLab
+
diff --git a/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4010.6c4c53010772e3cb4cb8acd54950c8eec9c00d21.patch b/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4010.6c4c53010772e3cb4cb8acd54950c8eec9c00d21.patch
new file mode 100644
index 00000000..49e23468
--- /dev/null
+++ b/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4010.6c4c53010772e3cb4cb8acd54950c8eec9c00d21.patch
@@ -0,0 +1,32 @@
+From 6c4c53010772e3cb4cb8acd54950c8eec9c00d21 Mon Sep 17 00:00:00 2001
+From: Povilas Kanapickas <povilas@radix.lt>
+Date: Tue, 14 Dec 2021 15:00:02 +0200
+Subject: [PATCH] Xext: Fix out of bounds access in SProcScreenSaverSuspend()
+
+ZDI-CAN-14951, CVE-2021-4010
+
+This vulnerability was discovered and the fix was suggested by:
+Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
+
+Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
+---
+ Xext/saver.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Xext/saver.c b/Xext/saver.c
+index 1d7e3cadf..f813ba08d 100644
+--- a/Xext/saver.c
++++ b/Xext/saver.c
+@@ -1351,8 +1351,8 @@ SProcScreenSaverSuspend(ClientPtr client)
+ REQUEST(xScreenSaverSuspendReq);
+
+ swaps(&stuff->length);
+- swapl(&stuff->suspend);
+ REQUEST_SIZE_MATCH(xScreenSaverSuspendReq);
++ swapl(&stuff->suspend);
+ return ProcScreenSaverSuspend(client);
+ }
+
+--
+GitLab
+
diff --git a/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4011.e56f61c79fc3cee26d83cda0f84ae56d5979f768.patch b/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4011.e56f61c79fc3cee26d83cda0f84ae56d5979f768.patch
new file mode 100644
index 00000000..2f3e4197
--- /dev/null
+++ b/source/x/x11/patch/xorg-server/xorg-server.CVE-2021-4011.e56f61c79fc3cee26d83cda0f84ae56d5979f768.patch
@@ -0,0 +1,33 @@
+From e56f61c79fc3cee26d83cda0f84ae56d5979f768 Mon Sep 17 00:00:00 2001
+From: Povilas Kanapickas <povilas@radix.lt>
+Date: Tue, 14 Dec 2021 15:00:00 +0200
+Subject: [PATCH] record: Fix out of bounds access in SwapCreateRegister()
+
+ZDI-CAN-14952, CVE-2021-4011
+
+This vulnerability was discovered and the fix was suggested by:
+Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
+
+Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
+---
+ record/record.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/record/record.c b/record/record.c
+index be154525d..e123867a7 100644
+--- a/record/record.c
++++ b/record/record.c
+@@ -2516,8 +2516,8 @@ SwapCreateRegister(ClientPtr client, xRecordRegisterClientsReq * stuff)
+ swapl(pClientID);
+ }
+ if (stuff->nRanges >
+- client->req_len - bytes_to_int32(sz_xRecordRegisterClientsReq)
+- - stuff->nClients)
++ (client->req_len - bytes_to_int32(sz_xRecordRegisterClientsReq)
++ - stuff->nClients) / bytes_to_int32(sz_xRecordRange))
+ return BadLength;
+ RecordSwapRanges((xRecordRange *) pClientID, stuff->nRanges);
+ return Success;
+--
+GitLab
+
diff --git a/source/xap/xine-ui/xine-ui.url b/source/xap/xine-ui/xine-ui.url
new file mode 100644
index 00000000..3b6755ac
--- /dev/null
+++ b/source/xap/xine-ui/xine-ui.url
@@ -0,0 +1 @@
+http://xine.sourceforge.net