shell bypass 403
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="4.24.0@06dd975cb55d36af80f242561738f16c5f58264f">
<file src="src/CallbackStream.php">
<ImplementedReturnTypeMismatch occurrences="1">
<code>null|callable</code>
</ImplementedReturnTypeMismatch>
<MixedAssignment occurrences="1">
<code>$contents</code>
</MixedAssignment>
</file>
<file src="src/Exception/DeserializationException.php">
<InvalidScalarArgument occurrences="2">
<code>$previous->getCode()</code>
<code>$previous->getCode()</code>
</InvalidScalarArgument>
</file>
<file src="src/MessageTrait.php">
<DocblockTypeContradiction occurrences="3">
<code>! is_string($name)</code>
<code>! is_string($stream) && ! is_resource($stream)</code>
<code>is_string($version)</code>
</DocblockTypeContradiction>
<InvalidArrayOffset occurrences="4">
<code>$new->headerNames[$normalized]</code>
<code>$this->headerNames[strtolower($header)]</code>
<code>$this->headerNames[strtolower($header)]</code>
<code>$this->headerNames[strtolower($name)]</code>
</InvalidArrayOffset>
<InvalidPropertyAssignmentValue occurrences="1">
<code>$headerNames</code>
</InvalidPropertyAssignmentValue>
<MixedArgumentTypeCoercion occurrences="2">
<code>$header</code>
<code>$header</code>
</MixedArgumentTypeCoercion>
<MixedAssignment occurrences="1">
<code>$value</code>
</MixedAssignment>
<MixedPropertyTypeCoercion occurrences="2">
<code>$headers</code>
<code>$new->headers</code>
</MixedPropertyTypeCoercion>
<ParamNameMismatch occurrences="2">
<code>$header</code>
<code>$header</code>
</ParamNameMismatch>
<PropertyTypeCoercion occurrences="2">
<code>$new->headerNames</code>
<code>$new->headers</code>
</PropertyTypeCoercion>
</file>
<file src="src/PhpInputStream.php">
<MissingParamType occurrences="1">
<code>$maxLength</code>
</MissingParamType>
<MixedArgument occurrences="1">
<code>$maxLength</code>
</MixedArgument>
<PossiblyNullArgument occurrences="1">
<code>$this->resource</code>
</PossiblyNullArgument>
<PropertyNotSetInConstructor occurrences="1">
<code>PhpInputStream</code>
</PropertyNotSetInConstructor>
</file>
<file src="src/RelativeStream.php">
<PossiblyNullOperand occurrences="1">
<code>$this->decoratedStream->getSize()</code>
</PossiblyNullOperand>
</file>
<file src="src/Request/ArraySerializer.php">
<MixedArgument occurrences="6">
<code>$headers</code>
<code>$method</code>
<code>$protocolVersion</code>
<code>$requestTarget</code>
<code>$uri</code>
<code>self::getValueFromKey($serializedRequest, 'body')</code>
</MixedArgument>
<MixedAssignment occurrences="5">
<code>$headers</code>
<code>$method</code>
<code>$protocolVersion</code>
<code>$requestTarget</code>
<code>$uri</code>
</MixedAssignment>
</file>
<file src="src/Request/Serializer.php">
<MixedArgument occurrences="5">
<code>$body</code>
<code>$headers</code>
<code>$method</code>
<code>$requestTarget</code>
<code>$version</code>
</MixedArgument>
<MixedArgumentTypeCoercion occurrences="1">
<code>$request->getHeaders()</code>
</MixedArgumentTypeCoercion>
</file>
<file src="src/RequestTrait.php">
<DocblockTypeContradiction occurrences="1">
<code>is_string($method)</code>
</DocblockTypeContradiction>
<MoreSpecificImplementedParamType occurrences="1">
<code>$requestTarget</code>
</MoreSpecificImplementedParamType>
<PossiblyNullOperand occurrences="2">
<code>$this->uri->getPort()</code>
<code>$uri->getPort()</code>
</PossiblyNullOperand>
<RedundantConditionGivenDocblockType occurrences="1">
<code>$uri === null</code>
</RedundantConditionGivenDocblockType>
</file>
<file src="src/Response.php">
<DocblockTypeContradiction occurrences="5">
<code>! is_numeric($code)</code>
<code>gettype($code)</code>
<code>is_float($code)</code>
<code>is_string($reasonPhrase)</code>
</DocblockTypeContradiction>
<MixedArgument occurrences="2">
<code>static::MAX_STATUS_CODE_VALUE</code>
<code>static::MIN_STATUS_CODE_VALUE</code>
</MixedArgument>
<RedundantCastGivenDocblockType occurrences="1">
<code>(int) $code</code>
</RedundantCastGivenDocblockType>
<RedundantConditionGivenDocblockType occurrences="1">
<code>is_scalar($code)</code>
</RedundantConditionGivenDocblockType>
</file>
<file src="src/Response/ArraySerializer.php">
<MixedArgument occurrences="5">
<code>$headers</code>
<code>$protocolVersion</code>
<code>$reasonPhrase</code>
<code>$statusCode</code>
<code>self::getValueFromKey($serializedResponse, 'body')</code>
</MixedArgument>
<MixedAssignment occurrences="4">
<code>$headers</code>
<code>$protocolVersion</code>
<code>$reasonPhrase</code>
<code>$statusCode</code>
</MixedAssignment>
</file>
<file src="src/Response/EmptyResponse.php">
<UnsafeInstantiation occurrences="1">
<code>new static(204, $headers)</code>
</UnsafeInstantiation>
</file>
<file src="src/Response/HtmlResponse.php">
<DocblockTypeContradiction occurrences="1">
<code>is_string($html)</code>
</DocblockTypeContradiction>
</file>
<file src="src/Response/InjectContentTypeTrait.php">
<MixedArgument occurrences="1">
<code>$item</code>
</MixedArgument>
<MixedAssignment occurrences="1">
<code>$hasContentType</code>
</MixedAssignment>
</file>
<file src="src/Response/JsonResponse.php">
<UnusedFunctionCall occurrences="1">
<code>json_encode</code>
</UnusedFunctionCall>
</file>
<file src="src/Response/RedirectResponse.php">
<DocblockTypeContradiction occurrences="1">
<code>gettype($uri)</code>
</DocblockTypeContradiction>
<RedundantConditionGivenDocblockType occurrences="1">
<code>is_object($uri)</code>
</RedundantConditionGivenDocblockType>
</file>
<file src="src/Response/Serializer.php">
<MixedArgument occurrences="5">
<code>$body</code>
<code>$headers</code>
<code>$reasonPhrase</code>
<code>$status</code>
<code>$version</code>
</MixedArgument>
<MixedArgumentTypeCoercion occurrences="1">
<code>$response->getHeaders()</code>
</MixedArgumentTypeCoercion>
<RedundantCast occurrences="1">
<code>(int) $status</code>
</RedundantCast>
</file>
<file src="src/Response/TextResponse.php">
<DocblockTypeContradiction occurrences="1">
<code>is_string($text)</code>
</DocblockTypeContradiction>
</file>
<file src="src/Response/XmlResponse.php">
<DocblockTypeContradiction occurrences="1">
<code>is_string($xml)</code>
</DocblockTypeContradiction>
</file>
<file src="src/ServerRequest.php">
<DocblockTypeContradiction occurrences="1">
<code>! is_array($data) && ! is_object($data) && null !== $data</code>
</DocblockTypeContradiction>
<ParamNameMismatch occurrences="2">
<code>$attribute</code>
<code>$attribute</code>
</ParamNameMismatch>
</file>
<file src="src/ServerRequestFactory.php">
<LessSpecificReturnStatement occurrences="1"/>
<MixedArgument occurrences="1">
<code>$headers['cookie']</code>
</MixedArgument>
<MixedArgumentTypeCoercion occurrences="1">
<code>$headers</code>
</MixedArgumentTypeCoercion>
<MixedAssignment occurrences="3">
<code>$iisUrlRewritten</code>
<code>$requestUri</code>
<code>$unencodedUrl</code>
</MixedAssignment>
<MixedInferredReturnType occurrences="1">
<code>array{string, int|null}</code>
</MixedInferredReturnType>
<MixedReturnStatement occurrences="1">
<code>$defaults</code>
</MixedReturnStatement>
<MixedReturnTypeCoercion occurrences="1">
<code>self::marshalHostAndPortFromHeader($host)</code>
</MixedReturnTypeCoercion>
<MoreSpecificReturnType occurrences="1">
<code>ServerRequest</code>
</MoreSpecificReturnType>
<RedundantConditionGivenDocblockType occurrences="1">
<code>is_callable(self::$apacheRequestHeaders)</code>
</RedundantConditionGivenDocblockType>
</file>
<file src="src/ServerRequestFilter/FilterUsingXForwardedHeaders.php">
<ImpureMethodCall occurrences="7">
<code>getHeaderLine</code>
<code>getServerParams</code>
<code>getUri</code>
<code>withHost</code>
<code>withPort</code>
<code>withScheme</code>
<code>withUri</code>
</ImpureMethodCall>
<LessSpecificReturnStatement occurrences="1">
<code>$proxyCIDRList</code>
</LessSpecificReturnStatement>
<MoreSpecificReturnType occurrences="1">
<code>list<non-empty-string></code>
</MoreSpecificReturnType>
</file>
<file src="src/Stream.php">
<PossiblyNullArgument occurrences="4">
<code>$resource</code>
<code>$this->resource</code>
<code>$this->resource</code>
<code>$this->resource</code>
</PossiblyNullArgument>
<PropertyNotSetInConstructor occurrences="1">
<code>$stream</code>
</PropertyNotSetInConstructor>
</file>
<file src="src/StreamFactory.php">
<ParamNameMismatch occurrences="1">
<code>$file</code>
</ParamNameMismatch>
</file>
<file src="src/UploadedFile.php">
<DocblockTypeContradiction occurrences="1">
<code>! is_string($targetPath)</code>
</DocblockTypeContradiction>
<PossiblyNullArgument occurrences="1">
<code>$this->file</code>
</PossiblyNullArgument>
</file>
<file src="src/UploadedFileFactory.php">
<PossiblyNullArgument occurrences="1">
<code>$size</code>
</PossiblyNullArgument>
</file>
<file src="src/Uri.php">
<DocblockTypeContradiction occurrences="10">
<code>! is_numeric($port)</code>
<code>is_float($port)</code>
<code>is_object($port)</code>
<code>is_string($fragment)</code>
<code>is_string($host)</code>
<code>is_string($path)</code>
<code>is_string($query)</code>
<code>is_string($scheme)</code>
<code>is_string($user)</code>
<code>null !== $password && ! is_string($password)</code>
</DocblockTypeContradiction>
<MixedArgument occurrences="5">
<code>$key</code>
<code>$key</code>
<code>$matches[0]</code>
<code>$port</code>
<code>$value</code>
</MixedArgument>
<PossiblyNullOperand occurrences="1">
<code>$this->port</code>
</PossiblyNullOperand>
<RedundantCastGivenDocblockType occurrences="1">
<code>(int) $port</code>
</RedundantCastGivenDocblockType>
<RedundantConditionGivenDocblockType occurrences="1">
<code>gettype($port)</code>
</RedundantConditionGivenDocblockType>
</file>
<file src="src/functions/create_uploaded_file.legacy.php">
<MixedArgument occurrences="1">
<code>func_get_args()</code>
</MixedArgument>
</file>
<file src="src/functions/create_uploaded_file.php">
<MixedArgument occurrences="4">
<code>$spec['error']</code>
<code>$spec['name'] ?? null</code>
<code>$spec['tmp_name']</code>
<code>$spec['type'] ?? null</code>
</MixedArgument>
</file>
<file src="src/functions/marshal_headers_from_sapi.legacy.php">
<MixedArgument occurrences="1">
<code>func_get_args()</code>
</MixedArgument>
</file>
<file src="src/functions/marshal_headers_from_sapi.php">
<MixedAssignment occurrences="3">
<code>$headers[$name]</code>
<code>$headers[$name]</code>
<code>$value</code>
</MixedAssignment>
</file>
<file src="src/functions/marshal_method_from_sapi.legacy.php">
<MixedArgument occurrences="1">
<code>func_get_args()</code>
</MixedArgument>
</file>
<file src="src/functions/marshal_method_from_sapi.php">
<MixedInferredReturnType occurrences="1">
<code>string</code>
</MixedInferredReturnType>
<MixedReturnStatement occurrences="1">
<code>$server['REQUEST_METHOD'] ?? 'GET'</code>
</MixedReturnStatement>
</file>
<file src="src/functions/marshal_protocol_version_from_sapi.legacy.php">
<MixedArgument occurrences="1">
<code>func_get_args()</code>
</MixedArgument>
</file>
<file src="src/functions/marshal_protocol_version_from_sapi.php">
<MixedArgument occurrences="1">
<code>$server['SERVER_PROTOCOL']</code>
</MixedArgument>
</file>
<file src="src/functions/marshal_uri_from_sapi.legacy.php">
<MixedArgument occurrences="1">
<code>func_get_args()</code>
</MixedArgument>
</file>
<file src="src/functions/marshal_uri_from_sapi.php">
<MissingClosureParamType occurrences="3">
<code>$default</code>
<code>$host</code>
<code>$https</code>
</MissingClosureParamType>
<MissingClosureReturnType occurrences="2">
<code>function ($host) {</code>
<code>function (string $name, array $headers, $default = null) {</code>
</MissingClosureReturnType>
<MixedArgument occurrences="8">
<code>$getHeaderFromArray('x-forwarded-proto', $headers, '')</code>
<code>$host</code>
<code>$host</code>
<code>$host</code>
<code>$host</code>
<code>$port</code>
<code>$requestUri</code>
<code>$server['QUERY_STRING']</code>
</MixedArgument>
<MixedArgumentTypeCoercion occurrences="2">
<code>$headers[$header]</code>
<code>$host</code>
</MixedArgumentTypeCoercion>
<MixedAssignment occurrences="4">
<code>$host</code>
<code>$iisUrlRewritten</code>
<code>$origPathInfo</code>
<code>$unencodedUrl</code>
</MixedAssignment>
<MixedInferredReturnType occurrences="2">
<code>array</code>
<code>string</code>
</MixedInferredReturnType>
<MixedOperand occurrences="1">
<code>$server['SERVER_ADDR']</code>
</MixedOperand>
<MixedReturnStatement occurrences="3">
<code>$defaults</code>
<code>$origPathInfo</code>
<code>$unencodedUrl</code>
</MixedReturnStatement>
<PossiblyFalseOperand occurrences="1">
<code>strrpos($host, ':')</code>
</PossiblyFalseOperand>
</file>
<file src="src/functions/normalize_server.legacy.php">
<MixedArgument occurrences="1">
<code>func_get_args()</code>
</MixedArgument>
</file>
<file src="src/functions/normalize_server.php">
<MixedArrayAccess occurrences="2">
<code>$apacheRequestHeaders['Authorization']</code>
<code>$apacheRequestHeaders['authorization']</code>
</MixedArrayAccess>
<MixedAssignment occurrences="3">
<code>$apacheRequestHeaders</code>
<code>$server['HTTP_AUTHORIZATION']</code>
<code>$server['HTTP_AUTHORIZATION']</code>
</MixedAssignment>
</file>
<file src="src/functions/normalize_uploaded_files.legacy.php">
<MixedArgument occurrences="1">
<code>func_get_args()</code>
</MixedArgument>
</file>
<file src="src/functions/normalize_uploaded_files.php">
<InvalidReturnStatement occurrences="1">
<code>$normalized</code>
</InvalidReturnStatement>
<InvalidReturnType occurrences="1">
<code>UploadedFileInterface[]</code>
</InvalidReturnType>
<MixedAssignment occurrences="3">
<code>$normalized[$key]</code>
<code>$value</code>
<code>$value</code>
</MixedAssignment>
<MixedFunctionCall occurrences="2"/>
<MixedInferredReturnType occurrences="1">
<code>array</code>
</MixedInferredReturnType>
<MixedReturnStatement occurrences="1"/>
</file>
<file src="src/functions/parse_cookie_header.legacy.php">
<MixedArgument occurrences="1">
<code>func_get_args()</code>
</MixedArgument>
</file>
<file src="src/functions/parse_cookie_header.php">
<LessSpecificReturnStatement occurrences="1">
<code>$cookies</code>
</LessSpecificReturnStatement>
<MoreSpecificReturnType occurrences="1">
<code>array<non-empty-string, string></code>
</MoreSpecificReturnType>
</file>
<file src="test/CallbackStreamTest.php">
<MissingClosureReturnType occurrences="1">
<code>function () {</code>
</MissingClosureReturnType>
<MixedAssignment occurrences="2">
<code>$ret</code>
<code>$ret</code>
</MixedAssignment>
</file>
<file src="test/Integration/UploadedFileTest.php">
<PossiblyNullArgument occurrences="1">
<code>$stream->getSize()</code>
</PossiblyNullArgument>
</file>
<file src="test/MessageTraitTest.php">
<MixedArgument occurrences="2">
<code>$value</code>
<code>$version</code>
</MixedArgument>
</file>
<file src="test/RelativeStreamTest.php">
<DocblockTypeContradiction occurrences="1">
<code>assertSame</code>
</DocblockTypeContradiction>
</file>
<file src="test/Request/SerializerTest.php">
<MissingClosureReturnType occurrences="1">
<code>function () use ($payload) {</code>
</MissingClosureReturnType>
<MixedArrayOffset occurrences="1">
<code>$payload[$i++]</code>
</MixedArrayOffset>
<MixedAssignment occurrences="1">
<code>$i</code>
</MixedAssignment>
<MixedOperand occurrences="1">
<code>$i</code>
</MixedOperand>
</file>
<file src="test/RequestTest.php">
<MixedArgument occurrences="1">
<code>$headers</code>
</MixedArgument>
</file>
<file src="test/ResponseTest.php">
<LessSpecificReturnStatement occurrences="1">
<code>$ianaCodesReasonPhrases</code>
</LessSpecificReturnStatement>
<MixedAssignment occurrences="1">
<code>$responseCode</code>
</MixedAssignment>
<MoreSpecificReturnType occurrences="1">
<code>list<array{numeric-string, non-empty-string}></code>
</MoreSpecificReturnType>
<RedundantConditionGivenDocblockType occurrences="1">
<code>assertIsInt</code>
</RedundantConditionGivenDocblockType>
<StringIncrement occurrences="1">
<code>$value</code>
</StringIncrement>
</file>
<file src="test/ServerRequestFactoryTest.php">
<InvalidArgument occurrences="1">
<code>$normalizedFiles['fooFiles']</code>
</InvalidArgument>
</file>
<file src="test/ServerRequestTest.php">
<InvalidArgument occurrences="1">
<code>$parsedBody</code>
</InvalidArgument>
</file>
<file src="test/StreamTest.php">
<DeprecatedMethod occurrences="1">
<code>setMethods</code>
</DeprecatedMethod>
<InvalidArgument occurrences="1">
<code>[' THIS WILL NOT WORK ']</code>
</InvalidArgument>
<MixedAssignment occurrences="1">
<code>$test</code>
</MixedAssignment>
</file>
<file src="test/UploadedFileTest.php">
<MixedArgument occurrences="2">
<code>$path</code>
<code>$streamOrFile</code>
</MixedArgument>
</file>
<file src="test/UriTest.php">
<InvalidScalarArgument occurrences="1">
<code>1</code>
</InvalidScalarArgument>
<MixedArgument occurrences="1">
<code>$test</code>
</MixedArgument>
<MixedAssignment occurrences="1">
<code>$test</code>
</MixedAssignment>
</file>
<file src="test/functions/NormalizeUploadedFilesTest.php">
<MixedArgument occurrences="2">
<code>$normalised['my-form']['details']['avatars']</code>
<code>$normalised['slide-shows'][0]['slides']</code>
</MixedArgument>
<MixedArrayAccess occurrences="8">
<code>$normalised['my-form']['details']['avatar']</code>
<code>$normalised['my-form']['details']['avatars']</code>
<code>$normalised['my-form']['details']['avatars']</code>
<code>$normalised['my-form']['details']['avatars']</code>
<code>$normalised['my-form']['details']['avatars']</code>
<code>$normalised['slide-shows'][0]['slides']</code>
<code>$normalised['slide-shows'][0]['slides']</code>
<code>$normalised['slide-shows'][0]['slides']</code>
</MixedArrayAccess>
<MixedMethodCall occurrences="6">
<code>getClientFilename</code>
<code>getClientFilename</code>
<code>getClientFilename</code>
<code>getClientFilename</code>
<code>getClientFilename</code>
<code>getClientFilename</code>
</MixedMethodCall>
<UndefinedInterfaceMethod occurrences="8">
<code>$normalised['my-form']</code>
<code>$normalised['my-form']</code>
<code>$normalised['my-form']</code>
<code>$normalised['my-form']</code>
<code>$normalised['my-form']</code>
<code>$normalised['slide-shows']</code>
<code>$normalised['slide-shows']</code>
<code>$normalised['slide-shows']</code>
</UndefinedInterfaceMethod>
</file>
</files>