🔥 The most advanced open-source online code execution system in the world.
Security researcher Daniel Cooper (@stacksparrow4) found three critical vulnerabilities in Judge0 versions <= 1.13.0
, which this release fixes. Thank you, Daniel, for your contribution.
This release fixes the following security vulnerabilities:
Judge0 is collecting telemetry data to help improve the product and understand its use in various production environments. Read more about telemetry here.
Please note that Judge0 has only been tested on Linux and might not work on other systems; thus, we do not provide support for it.
We recommend using Ubuntu 22.04, on which you need to do the following update of GRUB:
sudo
to open file /etc/default/grub
systemd.unified_cgroup_hierarchy=0
in the value of GRUB_CMDLINE_LINUX
variable.sudo update-grub
sudo reboot
Additionally, make sure you have Docker and Docker Compose installed.
wget https://github.com/judge0/judge0/releases/download/v1.13.1/judge0-v1.13.1.zip
unzip judge0-v1.13.1.zip
REDIS_PASSWORD
in the judge0.conf
file.POSTGRES_PASSWORD
in the judge0.conf
file.cd judge0-v1.13.1
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
http://<IP ADDRESS OF YOUR SERVER>:2358/docs
.Security researcher Daniel Cooper (@stacksparrow4) found three critical vulnerabilities in Judge0 versions <= 1.13.0-extra
, which this release fixes. Thank you, Daniel, for your contribution.
This release fixes the following security vulnerabilities:
Judge0 is collecting telemetry data to help improve the product and understand its use in various production environments. Read more about telemetry here.
Please note that Judge0 has only been tested on Linux and might not work on other systems; thus, we do not provide support for it.
We recommend using Ubuntu 22.04, on which you need to do the following update of GRUB:
sudo
to open file /etc/default/grub
systemd.unified_cgroup_hierarchy=0
in the value of GRUB_CMDLINE_LINUX
variable.sudo update-grub
sudo reboot
Additionally, make sure you have Docker and Docker Compose installed.
wget https://github.com/judge0/judge0/releases/download/v1.13.1-extra/judge0-v1.13.1-extra.zip
unzip judge0-v1.13.1-extra.zip
REDIS_PASSWORD
in the judge0.conf
file.POSTGRES_PASSWORD
in the judge0.conf
file.cd judge0-v1.13.1-extra
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
http://<IP ADDRESS OF YOUR SERVER>:2358/docs
.Huge thanks to Filtered for sponsoring this release.
enable_network
configuration flag. With the new ALLOW_ENABLE_NETWORK
configuration variable, usage of this flag can be permitted or denied. Furthermore, with the new ENABLE_NETWORK
configuration variable the default value of this flag can be set for every submission.
USE_DOCS_AS_HOMEPAGE
configuration variable, which allows you to show or hide Judge0 homepage. Now, by default, Judge0 homepage is empty and does not show the API documentation. However, you can still access the API documentation via /docs
.
/workers
.
wall_time_limit
must be at least 1 second.
max_file_size
and stack_limit
to 0 kB.
cpu_time_limit
and cpu_extra_time
to 0 seconds.
nproc
. This has been shown as a good choice for general purpose use-case.
nproc
and Rails processes to 2. This has been shown as a good choice for general purpose use-case.
judge0/compilers:1.4.0
which uses updated Isolate to @ad39cc4d.Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.
Please note that Judge0 has only been tested on Linux and macOS, and might not work on Windows, thus we do not provide support for it.
wget https://github.com/judge0/judge0/releases/download/v1.13.0/judge0-v1.13.0.zip
unzip judge0-v1.13.0.zip
cd judge0-v1.13.0
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
http://<IP ADDRESS OF YOUR SERVER>:2358
.wget https://github.com/judge0/judge0/releases/download/v1.13.0/judge0-v1.13.0-https.zip
unzip judge0-v1.13.0-https.zip
judge0-v1.13.0-https
:cd judge0-v1.13.0-https
docker-compose.yml
and change variables VIRTUAL_HOST
, LETSENCRYPT_HOST
and LETSENCRYPT_EMAIL
.docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
https://<YOUR DOMAIN>
.Huge thanks to Filtered for sponsoring this release.
ID | Name | Status |
---|---|---|
16 | C# (.NET Core SDK 3.1.302) | archived |
17 | C# (Mono 6.10.0.104) | archived |
18 | C# Test (.NET Core SDK 3.1.302, NUnit 3.12.0) | archived |
19 | F# (.NET Core SDK 3.1.302) | archived |
21 | C# (.NET Core SDK 3.1.406) | NEW |
22 | C# (Mono 6.12.0.122) | NEW |
23 | C# Test (.NET Core SDK 3.1.406, NUnit 3.12.0) | NEW |
24 | F# (.NET Core SDK 3.1.406) | NEW |
enable_network
configuration flag. With the new ALLOW_ENABLE_NETWORK
configuration variable, usage of this flag can be permitted or denied. Furthermore, with the new ENABLE_NETWORK
configuration variable the default value of this flag can be set for every submission.
USE_DOCS_AS_HOMEPAGE
configuration variable, which allows you to show or hide Judge0 homepage. Now, by default, Judge0 homepage is empty and does not show the API documentation. However, you can still access the API documentation via /docs
.
/workers
.
wall_time_limit
must be at least 1 second.
max_file_size
and stack_limit
to 0 kB.
cpu_time_limit
and cpu_extra_time
to 0 seconds.
nproc
. This has been shown as a good choice for general purpose use-case.
nproc
and Rails processes to 2. This has been shown as a good choice for general purpose use-case.
judge0/compilers:1.4.0
which uses updated Isolate to @ad39cc4d.Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.
Please note that Judge0 has only been tested on Linux and macOS, and might not work on Windows, thus we do not provide support for it.
wget https://github.com/judge0/judge0/releases/download/v1.13.0-extra/judge0-v1.13.0-extra.zip
unzip judge0-v1.13.0-extra.zip
cd judge0-v1.13.0-extra
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
http://<IP ADDRESS OF YOUR SERVER>
.wget https://github.com/judge0/judge0/releases/download/v1.13.0-extra/judge0-v1.13.0-extra-https.zip
unzip judge0-v1.13.0-extra-https.zip
judge0-v1.13.0-extra-https
:cd judge0-v1.13.0-extra-https
docker-compose.yml
and change variables VIRTUAL_HOST
, LETSENCRYPT_HOST
and LETSENCRYPT_EMAIL
.docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
https://<YOUR DOMAIN>
.invalidate_cache
query parameter.
judge0:run_in_queue
to manually run submissions that might have stuck in the In Queue
state.
CALLBACKS_MAX_TRIES
and CALLBACKS_TIMEOUT
. This is a global configuration that applies to all submissions that have defined webhooks (HTTP callbacks).
SUBMISSION_CACHE_DURATION
variable which is currently set to 1 second by default. Submissions are only cached for GET /submissions/<token>
route. Cache files are written to the server's file system and are automatically cleared every day at midnight. This is the first step toward more serious submission caching in the future.
RESTART_MAX_TRIES
variable to specify the maximum number of restart tries.
is_project
method of submission model where an exception was raised and not handled properly due to unknown language.
POSTGRES_DB
and POSTGRES_USER
. Both are now judge0
.
Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.
Please note that Judge0 has only been tested on Linux and macOS, and might not work on Windows, thus we do not provide support for it.
wget https://github.com/judge0/judge0/releases/download/v1.12.0/judge0-v1.12.0.zip
unzip judge0-v1.12.0.zip
cd judge0-v1.12.0
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
http://<IP ADDRESS OF YOUR SERVER>
.wget https://github.com/judge0/judge0/releases/download/v1.12.0/judge0-v1.12.0-https.zip
unzip judge0-v1.12.0-https.zip
judge0-v1.12.0-https
:cd judge0-v1.12.0-https
docker-compose.yml
and change variables VIRTUAL_HOST
, LETSENCRYPT_HOST
and LETSENCRYPT_EMAIL
.docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
https://<YOUR DOMAIN>
.invalidate_cache
query parameter.
judge0:run_in_queue
to manually run submissions that might have stuck in the In Queue
state.
CALLBACKS_MAX_TRIES
and CALLBACKS_TIMEOUT
. This is a global configuration that applies to all submissions that have defined webhooks (HTTP callbacks).
SUBMISSION_CACHE_DURATION
variable which is currently set to 1 second by default. Submissions are only cached for GET /submissions/<token>
route. Cache files are written to the server's file system and are automatically cleared every day at midnight. This is the first step toward more serious submission caching in the future.
RESTART_MAX_TRIES
variable to specify the maximum number of restart tries.
is_project
method of submission model where an exception was raised and not handled properly due to unknown language.
POSTGRES_DB
and POSTGRES_USER
. Both are now judge0
.
Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.
Please note that Judge0 has only been tested on Linux and macOS, and might not work on Windows, thus we do not provide support for it.
wget https://github.com/judge0/judge0/releases/download/v1.12.0-extra/judge0-v1.12.0-extra.zip
unzip judge0-v1.12.0-extra.zip
cd judge0-v1.12.0-extra
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
http://<IP ADDRESS OF YOUR SERVER>
.wget https://github.com/judge0/judge0/releases/download/v1.12.0-extra/judge0-v1.12.0-extra-https.zip
unzip judge0-v1.12.0-extra-https.zip
judge0-v1.12.0-extra-https
:cd judge0-v1.12.0-extra-https
docker-compose.yml
and change variables VIRTUAL_HOST
, LETSENCRYPT_HOST
and LETSENCRYPT_EMAIL
.docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
https://<YOUR DOMAIN>
.judge0.conf
is not present. Thank you @vvalchev.
base64_encoded
query parameter. Thank you @mejibyte.Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.
Please note that Judge0 has only been tested on Linux and might not work on Windows or macOS, thus we do not provide support for these systems.
wget https://github.com/judge0/judge0/releases/download/v1.11.0/judge0-v1.11.0.zip
unzip judge0-v1.11.0.zip
cd judge0-v1.11.0
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
http://<IP ADDRESS OF YOUR SERVER>
.wget https://github.com/judge0/judge0/releases/download/v1.11.0/judge0-v1.11.0-https.zip
unzip judge0-v1.11.0-https.zip
judge0-v1.11.0-https
:cd judge0-v1.11.0-https
docker-compose.yml
and change variables VIRTUAL_HOST
, LETSENCRYPT_HOST
and LETSENCRYPT_EMAIL
.docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
https://<YOUR DOMAIN>
.Huge thanks to AlgoDaily for sponsoring this release.
ID | Name | Note |
---|---|---|
13 | C (Clang 9.0.1) | |
14 | C++ (Clang 9.0.1) | |
15 | C++ Test (Clang 10.0.1, Google Test 1.8.1) | |
16 | C# (.NET Core SDK 3.1.302) | Sponsored by AlgoDaily. |
17 | C# (Mono 6.10.0.104) | Sponsored by AlgoDaily. |
18 | C# Test (.NET Core SDK 3.1.302, NUnit 3.12.0) | Sponsored by AlgoDaily. |
19 | F# (.NET Core SDK 3.1.302) | |
20 | Visual Basic.Net (vbnc 0.0.0.5943) |
judge0.conf
is not present. Thank you @vvalchev.
base64_encoded
query parameter. Thank you @mejibyte.CPU_TIME_LIMIT
to 15 s, MAX_CPU_TIME_LIMIT
to 20 s, WALL_TIME_LIMIT
to 20 s and MAX_WALL_TIME_LIMIT
to 25 s.MAX_MAX_FILE_SIZE
to 20480 KB.MAX_PROCESSES_AND_OR_THREADS
to 100./files
and /NuGet/packages
in compilation step.Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.
Please note that Judge0 has only been tested on Linux and might not work on Windows or macOS, thus we do not provide support for these systems.
wget https://github.com/judge0/judge0/releases/download/v1.11.0-extra/judge0-v1.11.0-extra.zip
unzip judge0-v1.11.0-extra.zip
cd judge0-v1.11.0-extra
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
http://<IP ADDRESS OF YOUR SERVER>
.wget https://github.com/judge0/judge0/releases/download/v1.11.0-extra/judge0-v1.11.0-extra-https.zip
unzip judge0-v1.11.0-extra-https.zip
judge0-v1.11.0-extra-https
:cd judge0-v1.11.0-extra-https
docker-compose.yml
and change variables VIRTUAL_HOST
, LETSENCRYPT_HOST
and LETSENCRYPT_EMAIL
.docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
https://<YOUR DOMAIN>
.ID | Name | Note |
---|---|---|
89 | Multi-file program |
Multi-file programs allow you specify your own compilation and execution scripts that Judge0 will use.
To use multi-file program feature you need to choose a language called Multi-file program whoose ID is 89. Moreover, you need to send all program files with additional_files
attribute. With multi-file programs attribute source_code
cannot be used, i.e. all files should be sent with additional_files
attribute.
For the Judge0 to know how to compile and execute your multi-file program you need to provide two special files that should be available in the root of the .zip
archive that you are sending with additional_files
attribute. These files should be named compile
and run
, and are expected to be Bash scripts that know how to compile and execute your multi-file program. If your multi-file program does not need compilation step, then you don't need to provide compile
script. Take a look at this example to learn how to use this feature to compile and run multi-file C++ project that uses CMake.
Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.
wget https://github.com/judge0/api/releases/download/v1.10.0/judge0-v1.10.0-https.zip
unzip judge0-v1.10.0-https.zip
judge0-v1.10.0-https
:cd judge0-v1.10.0-https
docker-compose.yml
and change variables VIRTUAL_HOST
, LETSENCRYPT_HOST
and LETSENCRYPT_EMAIL
.docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
https://<YOUR DOMAIN>
.wget https://github.com/judge0/api/releases/download/v1.10.0/judge0-v1.10.0.zip
unzip judge0-v1.10.0.zip
cd judge0-v1.10.0
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
http://<IP ADDRESS OF YOUR SERVER>
.Huge thanks to Filtered for sponsoring this release.
RAILS_SERVER_PROCESSES
which allows to create multiple processes for handling requests.Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.
wget https://github.com/judge0/api/releases/download/v1.9.0/judge0-v1.9.0-https.zip
unzip judge0-v1.9.0-https.zip
judge0-v1.9.0-https
:cd judge0-v1.9.0-https
docker-compose.yml
and change variables VIRTUAL_HOST
, LETSENCRYPT_HOST
and LETSENCRYPT_EMAIL
.docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
https://<YOUR DOMAIN>
.wget https://github.com/judge0/api/releases/download/v1.9.0/judge0-v1.9.0.zip
unzip judge0-v1.9.0.zip
cd judge0-v1.9.0
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
http://<IP ADDRESS OF YOUR SERVER>
.