Skip to content

Commit c801cf3

Browse files
committed
Refuse executable service with skip-service-descriptor=true
The fork server will not be used in this case, so the behavior would be inconsistent with skip-service-descriptor=false (the default).
1 parent b355ccc commit c801cf3

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

libqrexec/exec.c

+5
Original file line numberDiff line numberDiff line change
@@ -737,6 +737,11 @@ int find_qrexec_service(
737737

738738
if (euidaccess(path_buffer.data, X_OK) == 0) {
739739
/* Executable-based service. */
740+
if (!cmd->send_service_descriptor) {
741+
LOG(ERROR, "Refusing to execute executable service %s with skip-service-descriptor=true",
742+
path_buffer.data);
743+
return -2;
744+
}
740745
return 0;
741746
}
742747

qrexec/tests/socket/agent.py

+4
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,10 @@ def test_exec_service_with_invalid_config_5(self):
580580
def test_exec_service_with_invalid_config_6(self):
581581
self.exec_service_with_invalid_config(None)
582582

583+
def test_exec_service_with_invalid_config_7(self):
584+
# skip-service-descriptor not allowed with executable service
585+
self.exec_service_with_invalid_config("skip-service-descriptor = true\n")
586+
583587
def test_exec_service_with_arg(self):
584588
self.make_executable_service(
585589
"local-rpc",

0 commit comments

Comments
 (0)