Skip to content

Commit 691786a

Browse files
committed
docs: generate FEATURES.md
1 parent cd403db commit 691786a

11 files changed

Lines changed: 10549 additions & 194 deletions

Changelog

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
2.8.37 2026-02-14
22

3-
- refactor: replace system calls (whoami, hostname, printenv) with native Core Perl functions.
3+
- refactor: replace massive system calls (awk, grep, uname, getconf, sysctl) with native Core Perl functions for Linux.
4+
- feat: implement native parsing for /proc/cpuinfo, /proc/meminfo, /proc/sys/vm/swappiness and /etc/resolv.conf.
5+
- refactor: optimize CPU core count, logical CPU detection, and OS memory setup for local environments.
6+
- refactor: use POSIX::uname and POSIX::sysconf for standardized system and architecture reporting.
7+
- fix: resolve MariaDB socket authentication regression and restore automatic credential discovery (Issue #875).
8+
- fix: remediate Prototype Pollution vulnerability in lodash (CVE-2021-23341) by forcing update to 4.17.23.
9+
- test: add reproduction test for authentication discovery chain (tests/issue_875_regression.t).
410
- chore: bump version to 2.8.37.
511

612
2.8.36 2026-02-13

POTENTIAL_ISSUES

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,21 +57,21 @@ The following external commands are currently used via `execute_system_command`
5757

5858
#### High Priority Replacements (Low Complexity)
5959

60-
- [ ] **Command**: `whoami` (line 701)
61-
- **Replacement**: `(getpwuid($<))[0]` or `POSIX::cuserid()`
62-
- [ ] **Command**: `env` / `printenv` (lines 1673, 1890, 1955)
60+
- [x] **Command**: `whoami` (line 701)
61+
- **Replacement**: `(getpwuid($<))[0]` (Native core Perl used).
62+
- [x] **Command**: `env` / `printenv` (lines 1673, 1890, 1955)
6363
- **Replacement**: Access the `%ENV` hash directly.
64-
- [ ] **Command**: `hostname` (line 3051)
64+
- [x] **Command**: `hostname` (line 3051)
6565
- **Replacement**: `use Sys::Hostname; hostname();` (Core since Perl 5.6).
66-
- [ ] **Command**: `grep ... /proc/meminfo` (lines 1399, 1414, 3099)
66+
- [x] **Command**: `grep ... /proc/meminfo` (lines 1399, 1414, 3099)
6767
- **Replacement**: Open `/proc/meminfo` and parse line-by-line (Core file handles).
68-
- [ ] **Command**: `grep -c ^processor /proc/cpuinfo` (line 949)
68+
- [x] **Command**: `grep -c ^processor /proc/cpuinfo` (line 949)
6969
- **Replacement**: Open `/proc/cpuinfo` and count lines starting with `processor`.
70-
- [ ] **Command**: `which` (lines 1552, 1576)
70+
- [x] **Command**: `which` (lines 1552, 1576)
7171
- **Replacement**: Iterate through `split(/:/, $ENV{PATH})` and check file existence with `-x`.
72-
- [ ] **Command**: `getconf PAGESIZE` (line 2718)
72+
- [x] **Command**: `getconf PAGESIZE` (line 2718)
7373
- **Replacement**: `use POSIX; POSIX::sysconf(POSIX::_SC_PAGESIZE);`
74-
- [ ] **Command**: `uname` (lines 1108, 1395, 3044, 3049, 3117)
74+
- [x] **Command**: `uname` (lines 1108, 1395, 3044, 3049, 3117)
7575
- **Replacement**: `use POSIX; POSIX::uname();` or `$^O`.
7676

7777
#### Medium Priority Replacements (Environmental Specifics)
@@ -82,3 +82,7 @@ The following external commands are currently used via `execute_system_command`
8282
- **Replacement**: Read `/proc/uptime` (Linux-only) or calculate via `$^T` (script start time) for script uptime. System uptime requires `POSIX` / `/proc`.
8383
- [ ] **Command**: `df` (lines 2790, 2791)
8484
- **Replacement**: No cross-platform Core Perl replacement. Keep for now or use `statvfs` where available.
85+
- [x] **Command**: `grep -Ec '^flags.*\ hypervisor\ ' /proc/cpuinfo` (line 2981)
86+
- **Replacement**: Native Perl parsing of `/proc/cpuinfo`.
87+
- [x] **Command**: `sysctl -n vm.swappiness` (line 3052)
88+
- **Replacement**: Native Perl parsing of `/proc/sys/vm/swappiness`.

SECURITY.md

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,58 @@
11
# Security Policy
22

3+
MySQLTuner is committed to providing a secure and reliable experience for all users. This document outlines our security policies, supported versions, and the process for reporting vulnerabilities.
4+
35
## Supported Versions
46

5-
MySQLTuner is committed to providing security updates for the following versions:
7+
We provide security updates for the following versions of MySQLTuner:
68

7-
| Version | Supported |
8-
| ------- | ------------------ |
9-
| 2.x | :white_check_mark: |
10-
| < 2.x | :x: |
9+
| Version | Status |
10+
| ------- | --------------------- |
11+
| v2.x | Supported (v2.8.37) |
12+
| < v2.x | End of Life |
1113

12-
We strongly recommend using the latest stable release (currently v2.8.35) available on [GitHub](https://github.com/jmrenouard/MySQLTuner-perl/releases).
14+
We strongly recommend that all users stay updated with the latest stable release available on [GitHub Releases](https://github.com/jmrenouard/MySQLTuner-perl/releases).
1315

1416
## Reporting a Vulnerability
1517

16-
If you discover a security vulnerability within this project, please report it privately to the maintainer.
18+
If you discover a security vulnerability in MySQLTuner, please do **not** open a public issue. Instead, report it privately to the maintainer:
19+
20+
- **Contact**: Jean-Marie Renouard ([jmrenouard@lightpath.fr](mailto:jmrenouard@lightpath.fr))
21+
22+
### Reporting Guidelines
1723

18-
**Contact**: [jmrenouard@lightpath.fr](mailto:jmrenouard@lightpath.fr)
24+
Please include the following information in your report:
1925

20-
### What to expect
26+
- A description of the vulnerability.
27+
- Steps to reproduce the issue (proof of concept).
28+
- Potential impact and affected versions.
2129

22-
- **Acknowledgement**: You can expect an initial response within 48-72 hours.
23-
- **Updates**: We will provide periodic updates on the progress of any reported vulnerability until it is resolved.
30+
### What to Expect
31+
32+
- **Acknowledgement**: You will receive an initial response within 48-72 hours.
33+
- **Triage**: We will investigate the report and determine the impact.
34+
- **Resolution**: We will work on a fix as a priority.
2435
- **Disclosure**: We will coordinate with you to determine a mutually agreeable disclosure timeline.
2536

37+
## Security Scope
38+
39+
### In-Scope Vulnerabilities
40+
41+
- Local Privilege Escalation through insecure system calls.
42+
- Credential leaks in the report output (unless explicitly permitted via CLI options).
43+
- Remote Code Execution (RCE) via malicious database responses.
44+
- Insecure storage of temporary data.
45+
46+
### Out-of-Scope
47+
48+
- Vulnerabilities in the underlying Percona/MySQL/MariaDB database itself.
49+
- Issues requiring root access to the host machine to exploit.
50+
- Denial of Service (DoS) attacks that are inherent to database benchmarking or diagnostics.
51+
2652
## Security Philosophy
2753

28-
- **Production Stability**: Every recommendation provided by MySQLTuner is designed to be safe for production environments.
29-
- **Read-Only**: MySQLTuner is a read-only script. It does not modify your database or system configuration files.
30-
- **CVE Detection**: The script includes features to detect known vulnerabilities (CVEs) based on your MySQL/MariaDB version.
31-
- **Zero-Dependency**: To maintain a secure and portable footprint, we avoid external dependencies and only use Perl Core modules.
54+
- **Production Stability**: Every recommendation is designed to be safe for production environments. No destructive actions are performed.
55+
- **Read-Only Architecture**: MySQLTuner is strictly a read-only script. It does not modify database configurations or system files.
56+
- **Zero-Dependency Portability**: To minimize the attack surface, MySQLTuner only uses Perl Core modules and avoids external dependencies.
57+
- **CVE Detection**: The script proactively checks for known CVEs based on the detected database version.
58+
- **Auditability**: As a single-file Perl script, MySQLTuner is easily auditable by security teams before deployment.

0 commit comments

Comments
 (0)