Encode possible binary characters from user input in audit logs

This commit is contained in:
Ervin Hegedus
2025-11-13 11:49:32 +01:00
parent 032ccae9d3
commit 85384febb7
3 changed files with 63 additions and 4 deletions

View File

@@ -112,7 +112,7 @@ std::string Operator::resolveMatchMessage(Transaction *t,
if (m_couldContainsMacro == false) {
ret = "Matched \"Operator `" + m_op + "' with parameter `" +
utils::string::limitTo(200, m_param) +
"' against variable `" + key + "' (Value: `" +
"' against variable `" + utils::string::toHexIfNeeded(key) + "' (Value: `" +
utils::string::limitTo(100,
utils::string::toHexIfNeeded(value)) + \
"' )";
@@ -120,7 +120,7 @@ std::string Operator::resolveMatchMessage(Transaction *t,
std::string p(m_string->evaluate(t));
ret = "Matched \"Operator `" + m_op + "' with parameter `" +
utils::string::limitTo(200, p) +
"' against variable `" + key + "' (Value: `" +
"' against variable `" + utils::string::toHexIfNeeded(key) + "' (Value: `" +
utils::string::limitTo(100,
utils::string::toHexIfNeeded(value)) +
"' )";

View File

@@ -1610,7 +1610,7 @@ std::string Transaction::toJSON(int parts) {
if (parts & audit_log::AuditLog::CAuditLogPart) {
// FIXME: check for the binary content size.
LOGFY_ADD("body", this->m_requestBody.str());
LOGFY_ADD("body", utils::string::toHexIfNeeded(this->m_requestBody.str()));
}
/* request headers */
@@ -1712,7 +1712,7 @@ std::string Transaction::toJSON(int parts) {
LOGFY_ADD("ruleId", std::to_string(a.m_rule.m_ruleId));
LOGFY_ADD("file", a.m_rule.getFileName());
LOGFY_ADD("lineNumber", std::to_string(a.m_rule.getLineNumber()));
LOGFY_ADD("data", a.m_data);
LOGFY_ADD("data", utils::string::toHexIfNeeded(a.m_data));
LOGFY_ADD("severity", std::to_string(a.m_severity));
LOGFY_ADD("ver", a.m_rule.m_ver);
LOGFY_ADD("rev", a.m_rule.m_rev);