GraphQL 500 Internal Server Error : project query

Summary

String contains null byte in Project GraphQL query result in 500 status

Steps to reproduce

Run the following query: { project(fullPath: "e\u0000") { name fullPath } }

Example Project

Docker image of 12.6.3-ce

What is the current bug behavior?

500 status code returned

What is the expected correct behavior?

200 status code

Relevant logs and/or screenshots

ArgumentError (string contains null byte):

app/models/concerns/routable.rb:58:in `block in where_full_path_in'

app/models/concerns/routable.rb:57:in `map'

app/models/concerns/routable.rb:57:in `where_full_path_in'

app/graphql/resolvers/full_path_resolver.rb:16:in `block in model_by_full_path'

lib/gitlab/graphql/authorize/authorize_field_service.rb:95:in `allowed_access?'

lib/gitlab/graphql/authorize/authorize_field_service.rb:75:in `filter_allowed'

lib/gitlab/graphql/authorize/authorize_field_service.rb:21:in `block in authorized_resolve'

lib/gitlab/graphql/generic_tracing.rb:40:in `with_labkit_tracing'

lib/gitlab/graphql/generic_tracing.rb:30:in `platform_trace'

lib/gitlab/graphql/generic_tracing.rb:40:in `with_labkit_tracing'

lib/gitlab/graphql/generic_tracing.rb:30:in `platform_trace'

lib/gitlab/graphql/generic_tracing.rb:40:in `with_labkit_tracing'

lib/gitlab/graphql/generic_tracing.rb:30:in `platform_trace'

app/graphql/gitlab_schema.rb:46:in `execute'

app/controllers/graphql_controller.rb:47:in `execute_query'

app/controllers/graphql_controller.rb:18:in `execute'

lib/gitlab/session.rb:11:in `with_session'

app/controllers/application_controller.rb:458:in `set_session_storage'

lib/gitlab/i18n.rb:55:in `with_locale'

lib/gitlab/i18n.rb:61:in `with_user_locale'

app/controllers/application_controller.rb:452:in `set_locale'

lib/gitlab/error_tracking.rb:34:in `with_context'

app/controllers/application_controller.rb:536:in `sentry_context'

lib/gitlab/middleware/rails_queue_duration.rb:27:in `call'

lib/gitlab/metrics/rack_middleware.rb:17:in `block in call'

lib/gitlab/metrics/transaction.rb:62:in `run'

lib/gitlab/metrics/rack_middleware.rb:17:in `call'

lib/gitlab/request_profiler/middleware.rb:17:in `call'

lib/gitlab/middleware/go.rb:20:in `call'

lib/gitlab/etag_caching/middleware.rb:13:in `call'

lib/gitlab/middleware/correlation_id.rb:16:in `block in call'

lib/gitlab/middleware/correlation_id.rb:15:in `call'

lib/gitlab/middleware/multipart.rb:117:in `call'

lib/gitlab/middleware/read_only/controller.rb:48:in `call'

lib/gitlab/middleware/read_only.rb:18:in `call'

lib/gitlab/middleware/basic_health_check.rb:25:in `call'

lib/gitlab/request_context.rb:32:in `call'

config/initializers/fix_local_cache_middleware.rb:9:in `call'

lib/gitlab/metrics/requests_rack_middleware.rb:49:in `call'

lib/gitlab/middleware/release_env.rb:12:in `call'

Completed 500 Internal Server Error in 24ms (Views: 0.1ms | ActiveRecord: 8.3ms | Elasticsearch: 0.0ms)