Compare commits

...
5 Commits
Author SHA1 Message Date
Damien Miller 9795c4016a OpenSSH 9.3p2 2023-07-19 16:31:34 +10:00
Damien Miller bde3635f3c update version in README 2023-07-19 16:31:33 +10:00
Damien Miller f673f2f3e5 update RPM spec versions 2023-07-19 16:31:33 +10:00
Damien Miller d7790cdce7 disallow remote addition of FIDO/PKCS11 keys
Depends on the local client performing the [email protected]
operation, so non-OpenSSH local client may circumvent this.
2023-07-19 16:24:00 +10:00
Damien Miller b23fe83f06 terminate pkcs11 process for bad libraries 2023-07-19 16:23:59 +10:00
7 changed files with 46 additions and 11 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
See https://www.openssh.com/releasenotes.html#9.3p1 for the release
See https://www.openssh.com/releasenotes.html#9.3p2 for the release
notes.
Please read https://www.openssh.com/report.html for bug reporting
+1 -1
View File
@@ -1,4 +1,4 @@
%global ver 9.3p1
%global ver 9.3p2
%global rel 1%{?dist}
# OpenSSH privilege separation requires a user & group ID
+1 -1
View File
@@ -13,7 +13,7 @@
Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation
Name: openssh
Version: 9.3p1
Version: 9.3p2
URL: https://www.openssh.com/
Release: 1
Source0: openssh-%{version}.tar.gz
+20 -2
View File
@@ -107,9 +107,27 @@ environment variable).
.It Fl O Ar option
Specify an option when starting
.Nm .
Currently only one option is supported:
Currently two options are supported:
.Cm allow-remote-pkcs11
and
.Cm no-restrict-websafe .
This instructs
.Pp
The
.Cm allow-remote-pkcs11
option allows clients of a forwarded
.Nm
to load PKCS#11 or FIDO provider libraries.
By default only local clients may perform this operation.
Note that signalling that a
.Nm
client remote is performed by
.Xr ssh 1 ,
and use of other tools to forward access to the agent socket may circumvent
this restriction.
.Pp
The
.Cm no-restrict-websafe ,
instructs
.Nm
to permit signatures using FIDO keys that might be web authentication
requests.
+20 -1
View File
@@ -169,6 +169,12 @@ char socket_dir[PATH_MAX];
/* Pattern-list of allowed PKCS#11/Security key paths */
static char *allowed_providers;
/*
* Allows PKCS11 providers or SK keys that use non-internal providers to
* be added over a remote connection (identified by session-bind@openssh.com).
*/
static int remote_add_provider;
/* locking */
#define LOCK_SIZE 32
#define LOCK_SALT_SIZE 16
@@ -1228,6 +1234,12 @@ process_add_identity(SocketEntry *e)
if (strcasecmp(sk_provider, "internal") == 0) {
debug_f("internal provider");
} else {
if (e->nsession_ids != 0 && !remote_add_provider) {
verbose("failed add of SK provider \"%.100s\": "
"remote addition of providers is disabled",
sk_provider);
goto out;
}
if (realpath(sk_provider, canonical_provider) == NULL) {
verbose("failed provider \"%.100s\": "
"realpath: %s", sk_provider,
@@ -1391,6 +1403,11 @@ process_add_smartcard_key(SocketEntry *e)
error_f("failed to parse constraints");
goto send;
}
if (e->nsession_ids != 0 && !remote_add_provider) {
verbose("failed PKCS#11 add of \"%.100s\": remote addition of "
"providers is disabled", provider);
goto send;
}
if (realpath(provider, canonical_provider) == NULL) {
verbose("failed PKCS#11 add of \"%.100s\": realpath: %s",
provider, strerror(errno));
@@ -2050,7 +2067,9 @@ main(int ac, char **av)
break;
case 'O':
if (strcmp(optarg, "no-restrict-websafe") == 0)
restrict_websafe = 0;
restrict_websafe = 0;
else if (strcmp(optarg, "allow-remote-pkcs11") == 0)
remote_add_provider = 1;
else
fatal("Unknown -O option");
break;
+2 -4
View File
@@ -1537,10 +1537,8 @@ pkcs11_register_provider(char *provider_id, char *pin,
error("dlopen %s failed: %s", provider_id, dlerror());
goto fail;
}
if ((getfunctionlist = dlsym(handle, "C_GetFunctionList")) == NULL) {
error("dlsym(C_GetFunctionList) failed: %s", dlerror());
goto fail;
}
if ((getfunctionlist = dlsym(handle, "C_GetFunctionList")) == NULL)
fatal("dlsym(C_GetFunctionList) failed: %s", dlerror());
p = xcalloc(1, sizeof(*p));
p->name = xstrdup(provider_id);
p->handle = handle;
+1 -1
View File
@@ -2,5 +2,5 @@
#define SSH_VERSION "OpenSSH_9.3"
#define SSH_PORTABLE "p1"
#define SSH_PORTABLE "p2"
#define SSH_RELEASE SSH_VERSION SSH_PORTABLE