From 95d8aa298202121bf978c2a927bf854b7e69abe9 Mon Sep 17 00:00:00 2001 From: Liav A Date: Sat, 12 Nov 2022 20:04:20 +0200 Subject: [PATCH] Kernel: Allow read access sparingly to some /sys/kernel directory nodes Those nodes are not exposing any sensitive information so there's no harm in exposing them. --- Kernel/FileSystem/SysFS/Subsystems/Kernel/DiskUsage.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/Interrupts.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/Keymap.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/MemoryStatus.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/ARP.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Adapters.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Local.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Route.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/TCP.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/UDP.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/Processes.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/SystemStatistics.h | 2 ++ Kernel/FileSystem/SysFS/Subsystems/Kernel/Uptime.h | 2 ++ 13 files changed, 26 insertions(+) diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/DiskUsage.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/DiskUsage.h index e317b968898..41803af168d 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/DiskUsage.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/DiskUsage.h @@ -23,6 +23,8 @@ public: private: SysFSDiskUsage(SysFSDirectory const& parent_directory); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Interrupts.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Interrupts.h index 7353a92b86c..368e70eeda9 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Interrupts.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Interrupts.h @@ -23,6 +23,8 @@ public: private: explicit SysFSInterrupts(SysFSDirectory const& parent_directory); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Keymap.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Keymap.h index 8124615a861..66e279ae3a4 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Keymap.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Keymap.h @@ -23,6 +23,8 @@ public: private: explicit SysFSKeymap(SysFSDirectory const& parent_directory); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/MemoryStatus.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/MemoryStatus.h index 675cfa1fc48..adbe13585ef 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/MemoryStatus.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/MemoryStatus.h @@ -23,6 +23,8 @@ public: private: explicit SysFSMemoryStatus(SysFSDirectory const& parent_directory); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/ARP.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/ARP.h index 6764192d3a6..f8f6a50fb83 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/ARP.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/ARP.h @@ -22,6 +22,8 @@ public: private: explicit SysFSNetworkARPStats(SysFSDirectory const&); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Adapters.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Adapters.h index c55d5538d0f..dd3d74567a1 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Adapters.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Adapters.h @@ -22,6 +22,8 @@ public: private: explicit SysFSNetworkAdaptersStats(SysFSDirectory const&); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Local.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Local.h index af6f5fb3780..101552471ce 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Local.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Local.h @@ -22,6 +22,8 @@ public: private: explicit SysFSLocalNetStats(SysFSDirectory const&); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Route.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Route.h index c8573751cbb..576b9ea04ed 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Route.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Route.h @@ -22,6 +22,8 @@ public: private: explicit SysFSNetworkRouteStats(SysFSDirectory const&); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/TCP.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/TCP.h index a44644763c8..46aaba6651c 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/TCP.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/TCP.h @@ -22,6 +22,8 @@ public: private: explicit SysFSNetworkTCPStats(SysFSDirectory const&); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/UDP.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/UDP.h index 59f79ad812f..e48f9afa9a4 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/UDP.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/UDP.h @@ -22,6 +22,8 @@ public: private: explicit SysFSNetworkUDPStats(SysFSDirectory const&); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Processes.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Processes.h index 1995ce73d2e..105d7f172b9 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Processes.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Processes.h @@ -23,6 +23,8 @@ public: private: explicit SysFSOverallProcesses(SysFSDirectory const& parent_directory); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/SystemStatistics.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/SystemStatistics.h index 6223ab36f57..136b04f8141 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/SystemStatistics.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/SystemStatistics.h @@ -23,6 +23,8 @@ public: private: explicit SysFSSystemStatistics(SysFSDirectory const& parent_directory); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; } diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Uptime.h b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Uptime.h index 4d5a77be803..cd055f7a5c9 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Uptime.h +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Uptime.h @@ -22,6 +22,8 @@ public: private: explicit SysFSUptime(SysFSDirectory const& parent_directory); virtual ErrorOr try_generate(KBufferBuilder& builder) override; + + virtual bool is_readable_by_jailed_processes() const override { return true; } }; }