From nobody Wed Feb 23 02:35:13 2022 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id B5B9019CE4AC; Wed, 23 Feb 2022 02:35:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4K3Krd4lrmz4sBh; Wed, 23 Feb 2022 02:35:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1645583713; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=m8Kezsd0pdB82+PnA1Xr9tbNxSMUt5weBXj7ObNuhrE=; b=lZY62pED5rQNWZg+TPzTESK2o3XYkZbMJ4gLz2PsQ/2BNQ97Z5I0FqHJDjZkIKcV9KWDlI y1CrDipIb8OFu0PYLabzzb7dXntdtrqukWoNI0rVAgeiEaPQ+V3qBVaOH9js8YT/fzJdya K2ECqKnJUDq9fBvOWW8k68vrDhR7uQGqK68dFHuJqr7l+ub8exal7pjXCIC1PmmsNvaVP/ WP4fdG7rqW4vvyv3zGbnA5/Iit3Xi5EK1z/e1JWBTEYXp9lJoP4hP1/bGZYffHZNt2mB9x Mip2d7ra6qJ4+mfJK7kJHfQEAzCGhBylMQfXb8pyJgGICnM33oo8JSwwc9/05A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 843681048F; Wed, 23 Feb 2022 02:35:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 21N2ZDWo067304; Wed, 23 Feb 2022 02:35:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 21N2ZDJ8067303; Wed, 23 Feb 2022 02:35:13 GMT (envelope-from git) Date: Wed, 23 Feb 2022 02:35:13 GMT Message-Id: <202202230235.21N2ZDJ8067303@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Hajimu UMEMOTO Subject: git: c4eb47c93f83 - main - security/cyrus-sasl2-sql: Escape password for SQL insert/update commands List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ume X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c4eb47c93f835c4e3349e9a97a13e50621beef6a Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1645583713; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=m8Kezsd0pdB82+PnA1Xr9tbNxSMUt5weBXj7ObNuhrE=; b=OBz/LMfx2LvoQ/OxPM+qkgrOfpP02z1vY06UqVfYrzot4Q41dgcuhutDmW6dy5TEwumN3F jj6v5vb2qP6nMyc5XJ7Z8ywINdYfFS7fMG7zfHreHEDGO8iweJjnYlVjlCv6de+PbBRSSS DhHkWmQij1qc7cdR6HxCSVorSgyAdiFJAS0uQnx9Svwo6T+/+r3f2Nu17353QGwobU72E9 YbPBH7PJkna2gIv1sxQVNgfF6Aan+X10bwVubcWqEsVlTSXtcaM7bGrWpG6UF3aa2z6eM1 7p1Ud6RWvEpE2nT9BcMxn9yjhzPcNbZGOff5oX/sXgvsOWxU1LVM4XaZDugXKQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1645583713; a=rsa-sha256; cv=none; b=Q4u2spRL8CsdQDf/75vCXfbJeUnL8x7Rw9BsBf9sXKQ37AvnjO5cqHzgjHmeyiJZkfc7bQ I1S5jVonOPzrhDX/bljOih9uERRdeS2exSX6WBxJgFEGKbaLF4emx66ARbGlEjlXl33MvL 9ZReFHEpGuS0BLc08HgDGkxEMXwCHlOd0FKUENNkVly8BqIs9Zjo836GTeN9lHkfsRDv06 umazl7lpboIgZZzlsiUleraRIw1S/I77GwM7b2hUm9wOeOdhLzD9B590PAimEuwWhlVxVj 0h6PXsds57nQW78NizwEujuD0d8hgKbfcYUHHUEPV0Ibq/u6yxLwP7WJo1S7Gw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by ume: URL: https://cgit.FreeBSD.org/ports/commit/?id=c4eb47c93f835c4e3349e9a97a13e50621beef6a commit c4eb47c93f835c4e3349e9a97a13e50621beef6a Author: Hajimu UMEMOTO AuthorDate: 2022-02-23 02:15:13 +0000 Commit: Hajimu UMEMOTO CommitDate: 2022-02-23 02:34:14 +0000 security/cyrus-sasl2-sql: Escape password for SQL insert/update commands Obtained from: https://github.com/cyrusimap/cyrus-sasl/commit/2d2e97b0eb53fa7f87a3bf1529d8f712dd954480 Security: CVE-2022-24407 --- security/cyrus-sasl2-sql/Makefile | 1 + security/cyrus-sasl2/files/patch-plugins__sql.c | 66 +++++++++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/security/cyrus-sasl2-sql/Makefile b/security/cyrus-sasl2-sql/Makefile index 471cc4038e0f..c8ef4ce4f261 100644 --- a/security/cyrus-sasl2-sql/Makefile +++ b/security/cyrus-sasl2-sql/Makefile @@ -1,4 +1,5 @@ PKGNAMESUFFIX= -sql +PORTREVISION= 1 COMMENT= SASL SQL plugins diff --git a/security/cyrus-sasl2/files/patch-plugins__sql.c b/security/cyrus-sasl2/files/patch-plugins__sql.c new file mode 100644 index 000000000000..1983317092bf --- /dev/null +++ b/security/cyrus-sasl2/files/patch-plugins__sql.c @@ -0,0 +1,66 @@ +--- plugins/sql.c.orig 2016-12-10 15:45:55 UTC ++++ plugins/sql.c +@@ -1150,6 +1150,7 @@ static int sql_auxprop_store(void *glob_context, + char *statement = NULL; + char *escap_userid = NULL; + char *escap_realm = NULL; ++ char *escap_passwd = NULL; + const char *cmd; + + sql_settings_t *settings; +@@ -1221,6 +1222,11 @@ static int sql_auxprop_store(void *glob_context, + "Unable to begin transaction\n"); + } + for (cur = to_store; ret == SASL_OK && cur->name; cur++) { ++ /* Free the buffer, current content is from previous loop. */ ++ if (escap_passwd) { ++ sparams->utils->free(escap_passwd); ++ escap_passwd = NULL; ++ } + + if (cur->name[0] == '*') { + continue; +@@ -1242,19 +1248,32 @@ static int sql_auxprop_store(void *glob_context, + } + sparams->utils->free(statement); + ++ if (cur->values[0]) { ++ escap_passwd = (char *)sparams->utils->malloc(strlen(cur->values[0])*2+1); ++ if (!escap_passwd) { ++ ret = SASL_NOMEM; ++ break; ++ } ++ settings->sql_engine->sql_escape_str(escap_passwd, cur->values[0]); ++ } ++ + /* create a statement that we will use */ + statement = sql_create_statement(cmd, cur->name, escap_userid, + escap_realm, +- cur->values && cur->values[0] ? +- cur->values[0] : SQL_NULL_VALUE, ++ escap_passwd ? ++ escap_passwd : SQL_NULL_VALUE, + sparams->utils); ++ if (!statement) { ++ ret = SASL_NOMEM; ++ break; ++ } + + { + char *log_statement = + sql_create_statement(cmd, cur->name, + escap_userid, + escap_realm, +- cur->values && cur->values[0] ? ++ escap_passwd ? + "" : SQL_NULL_VALUE, + sparams->utils); + sparams->utils->log(sparams->utils->conn, SASL_LOG_DEBUG, +@@ -1287,6 +1306,7 @@ static int sql_auxprop_store(void *glob_context, + done: + if (escap_userid) sparams->utils->free(escap_userid); + if (escap_realm) sparams->utils->free(escap_realm); ++ if (escap_passwd) sparams->utils->free(escap_passwd); + if (conn) settings->sql_engine->sql_close(conn); + if (userid) sparams->utils->free(userid); + if (realm) sparams->utils->free(realm);