HEX
Server: Apache
System: Linux localhost.localdomain 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
User: web57 (5040)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/clients/client6/web57/web/wffence/wp-cli-wordfence/src/Models/AffectedVersion.php
<?php

namespace GeneroWP\WpCliWordfence\Models;

class AffectedVersion
{
    public function __construct(
        public string $fromVersion,
        public bool $fromInclusive,
        public string $toVersion,
        public bool $toInclusive,
    ) {
    }

    /**
     * @param array<string,string|bool> $data
     */
    public static function fromRecord(array $data): AffectedVersion
    {
        return new self(
            $data['from_version'],
            $data['from_inclusive'],
            $data['to_version'],
            $data['to_inclusive'],
        );
    }

    public function isVersionAffected(string $activeVersion): bool
    {
        $fromOperator = $this->fromInclusive ? '<' : '<=';
        $toOperator = $this->toInclusive ? '>' : '>=';
        $fromVersion = $this->fromVersion === '*' ? 0 : $this->fromVersion;
        $toVersion = $this->toVersion === '*' ? PHP_INT_MAX : $this->toVersion;

        $isOlderThanVulnerableVersion = version_compare($activeVersion, $fromVersion, $fromOperator);
        if ($isOlderThanVulnerableVersion) {
            return false;
        }

        $isNewerThanPatchedVersion = version_compare($activeVersion, $toVersion, $toOperator);
        if ($isNewerThanPatchedVersion) {
            return false;
        }
        return true;
    }
}